【发布时间】:2014-07-23 01:07:48
【问题描述】:
我有一些使用 with 的 db 查询的结果,然后我将其转换为数组,因为我只想提取 id 和名称。
我尝试使用 array_only 方法,例如 http://laravel.com/docs/helpers#arrays
$result = array_only($result, ['id', 'user.name']);
它什么也没给我,所以我认为它不支持点符号。
我期待得到
array
array
id => 1
name => Bill Cstevens
array
id => 2
name => Jennyfer Aufderhar
array
id => 3
name => Catharine Kuhlman
这是我正在做的数组。我认为有某种帮手,而无需我自己编写一些代码来循环它。
我也尝试过 $queryResult->lists('user.name', 'id');因为 Collections 支持列表 - 它确实给了我 id 但 user.name 为 null :(
array (size=3)
0 =>
array (size=7)
'id' => string '1'
'user_id' => string '3'
'phone' => string '04 346 6337'
'address' => string '819 Quigley Grove, Jazmynston, 6786'
'created_at' => string '2014-06-12 19:27:00'
'updated_at' => string '2014-07-15 05:57:04'
'user' =>
array (size=5)
'id' => string '3'
'name' => string 'Bill Cstevens'
'email' => string 'xxxx@example.com'
'created_at' => string '2014-06-15 22:40:25'
'updated_at' => string '2014-07-02 06:35:03'
1 =>
array (size=7)
'id' => string '2'
'user_id' => string '6'
'phone' => string '06 354 5069'
'address' => string '7 Bergnaum Mall, Stuartston, '
'created_at' => string '2014-06-15 22:40:25'
'updated_at' => string '2014-07-02 06:35:03'
'user' =>
array (size=5)
'id' => string '6'
'name' => string 'Jennyfer Aufderhar'
'email' => string 'rudy.baumbach@example.com'
'created_at' => string '2014-06-15 22:40:25'
'updated_at' => string '2014-07-02 06:35:03'
2 =>
array (size=7)
'id' => string '3'
'user_id' => string '7'
'phone' => string '04 777 9959'
'address' => string '4 O'Kon Drive, Janville, Hawkes Bay, 1667'
'created_at' => string '2014-05-31 17:49:09'
'updated_at' => string '2014-07-12 21:46:06'
'user' =>
array (size=7)
'id' => string '5'
'name' => string 'Catharine Kuhlman'
'email' => string 'dimitri50@example.com'
'created_at' => string '2014-05-31 17:49:09'
'updated_at' => string '2014-07-12 21:46:06'
【问题讨论】:
-
Short array syntax 仅支持 PHP 5.4,您是否尝试过使用传统符号,例如
array('id', 'user.name')确保不是这样?只是一个想法...... -
我认为这仍然是一个悬而未决的问题,因为我也在寻找类似的东西。