Laravel Eloquent将数据提取到自定义数组中

Dan*_*les 1 php arrays json laravel eloquent

我已经尝试用Laravel寻找一种方法来做到这一点,我确信它的能力超过了(也许我一直用不正确的术语来搜索它).

我正在尝试提取要在Laravels内置表单创建器中使用的表数据:

$clusters = Cluster::get(array('id','name'));
Run Code Online (Sandbox Code Playgroud)

成:

{{ Form::select('cluster', $clusters,Input::old('cluster'), array('id' => 'cluster')) }}
Run Code Online (Sandbox Code Playgroud)

但是目前,我得到一个带有JSON的下拉列表,如果我使用toArray()它不使用JSON数组中的ID号,它会应用新的ID号,然后将数据放入一个数组中:

使用来自JSON对象的toArray的格式错误的数组

任何人都可以指出我正确的方向从Eloquent提取正确形成数组?我一直在使用这些代码感觉毫无意义:

$clust = array();
foreach($clusters as $key => $cl) {
  $clust[$cl['id']] = $cl['location'];
}
Run Code Online (Sandbox Code Playgroud)

谢谢

Ake*_*rts 6

使用lists(),它将返回一个列值数组,以及它们的可选标识符.

// Controller
$clusters = Cluster::lists('name', 'id');

// View
{{ Form::select('cluster', $clusters) }}
Run Code Online (Sandbox Code Playgroud)

lists()是一个查询生成器方法.所有查询构建器方法都可用于Eloquent模型.


仅供参考:使用表单助手时,它会自动填充旧输入(如果存在),因此您无需指定它.此外,帮助程序将自动生成基于元素名称的ID,因此也可以将其排除.