2016-11-08 155 views
3

这里是我的代码:如何选择表格的某些列?

$arr = Users::all()->toArray(); 

它返回所有表列的一个阵列。但我不需要所有的专栏。我只需要返回这些列:'id', 'name', 'email', 'age'。我搜索有关,我想通了这一点:(使用pluck()功能)

$arr = Users::pluck('id', 'name', 'email', 'age')->toArray(); 

但它不会返回预期的结果。它返回:

array:7 [▼ 
    "John" => 1 
    "Peter" => 2 
    "Jack" => 3 
    "Ali" => 4 
    "Teresco" => 5 
    "Mark" => 6 
    "Barman" => 7 
] 

正如你看到的,没有emailage列。我该如何解决它?

+1

你可以尝试这样的:'$ ARR =用户: :get(array('columns'....));' –

+1

@SI是的,它的工作..我测试它..谢谢 –

回答

0

你可以收集列的排列在get()这个样子做:

$arr = Users::get(array('id', 'name', 'email', 'age'))->toArray(); 
+1

是的,我忘了它。谢谢 :) –

0

试试这个:

Users::with(array('user'=>function($query){ 
     $query->select('id','username'); 
    }))->get(); 

它只会从其他表中选择ID和用户名。我希望这会帮助其他人。

+0

'toArray()'在哪里? –

+0

http://stackoverflow.com/a/19921418/1158599 –

+1

@ S.I。哈......你有非常棒的技能''-P' –

3

可以使用select方法就是这样,

Users::select('id', 'name', 'email', 'age') 
     ->get() 
     ->toArray();