Fab*_*lio 38 query-builder laravel-4
我正在尝试使用该方法将查询转换为数组,toArray()但它不适用于查询构建器.转换的任何想法吗?
例
DB::table('user')->where('name',=,'Jhon')->get()->toArray();
Run Code Online (Sandbox Code Playgroud)
pet*_*tas 50
toArray是Eloquent的模型方法,所以你需要一个Eloquent模型,试试这个:
User::where('name', '=', 'Jhon')->get()->toArray();
Run Code Online (Sandbox Code Playgroud)
http://laravel.com/docs/eloquent#collections
Som*_*atd 43
如果您更喜欢使用查询生成器而不是Eloquent,那么这里就是解决方案
$result = DB::table('user')->where('name',=,'Jhon')->get();
Run Code Online (Sandbox Code Playgroud)
第一解决方案
$array = (array) $result;
Run Code Online (Sandbox Code Playgroud)
二解决方案
$array = get_object_vars($result);
Run Code Online (Sandbox Code Playgroud)
第三解决方案
$array = json_decode(json_encode($result), true);
Run Code Online (Sandbox Code Playgroud)
希望它可能有所帮助
ale*_*exw 14
请注意,从Laravel 5.4开始,显然不再支持下面提供的选项(感谢@Alex).
在Laravel 5.3及更低版本中,有一种方法可以为选择查询设置获取模式.
在这种情况下,执行以下操作可能更有效:
DB::connection()->setFetchMode(PDO::FETCH_ASSOC);
$result = DB::table('user')->where('name',=,'Jhon')->get();
Run Code Online (Sandbox Code Playgroud)
这样,您就不会浪费时间创建对象,然后将它们转换回数组.
还有另一个解决方案
$objectData = DB::table('user')
->select('column1', 'column2')
->where('name', '=', 'Jhon')
->get();
$arrayData = array_map(function($item) {
return (array)$item;
}, $objectData->toArray());
Run Code Online (Sandbox Code Playgroud)
如果您只需要实体中的几列,这很好。
| 归档时间: |
|
| 查看次数: |
74850 次 |
| 最近记录: |