在Laravel中将eloquent结果转换为关联数组

Meh*_*hdi 2 php laravel laravel-5 laravel-5.3

如何将结果从eloquent转换为关联数组.我需要选择拖曳列,并将一个作为键,另一个作为值.这是我得到的壁橱,但值是一个数组.我希望它只是"my_value"列.

$array = Post::select('my_key','my_value')->get()->keyBy('my_key')
Run Code Online (Sandbox Code Playgroud)

Lae*_*rte 10

你应该使用lists(Laravel 5.1)或pluck(Laravel 5.2+):

$array = Post::lists('my_value', 'my_key');
Run Code Online (Sandbox Code Playgroud)

要么

$array = Post::pluck('my_value', 'my_key');
Run Code Online (Sandbox Code Playgroud)

  • 谢谢,看起来列表已重命名为 plunk,我只是修改了一下`$array = Post::plunk('my_value', 'my_key')->toArray();` (2认同)
  • 只是想向未来的人指出:@Mehdi 的答案是一个错字。是“拔”,不是“拔”。 (2认同)

Meh*_*hdi 6

我找到了一种方法来做到这一点,但我不确定这是否是明智地执行此性能的正确方法......

$array = Post::select('my_key','my_value')->get()->mapWithKeys(function ($item) {
            return [$item['my_key'] => $item['my_value']];
        })->toArray();
Run Code Online (Sandbox Code Playgroud)