laravel 5 方法 only() 或 except() 问题
laravel 5 methods only() or except() issues
我在 laravel 使用 only()
和 except
方法时遇到问题。
官方文档:
- https://laravel.com/docs/5.4/collections#method-only
- https://laravel.com/docs/5.4/collections#method-except
使用:
$data = Model::whereId($id)->first();
或者
$data = Model::whereId($id)->get()->except('updated_at', 'deleted_at');
我得到:
{"id":21,"name":"new one","description":"desc","deleted_at":null,"created_at":"2017-03-08 16:23:01","updated_at":"2017-03-08 16:23:01"}
与:
$data = Model::whereId($id)->get()->only('id', 'name', 'description', 'created_at');
我得到一个空结果。
我很确定我没有以正确的方式调用该方法。
我也试过在从 DB 获得结果后调用它,比如 $data->only('...')
或 $data->except('...')
没有任何运气。
如有任何帮助,我们将不胜感激!谢谢!
很奇怪,我设法通过创建一个新变量来做到这一点,该变量将保存结果的 collect()
(这是模型实例)
所以这有效:
$data = Model::whereId($id)->first();
$return = collect($data)->except('updated_at', 'deleted_at');
return Response::json($return);
在某种程度上它是有道理的,因为它不是模型相关的方法,而是解析集合对象一。
我在 laravel 使用 only()
和 except
方法时遇到问题。
官方文档:
- https://laravel.com/docs/5.4/collections#method-only
- https://laravel.com/docs/5.4/collections#method-except
使用:
$data = Model::whereId($id)->first();
或者$data = Model::whereId($id)->get()->except('updated_at', 'deleted_at');
我得到:
{"id":21,"name":"new one","description":"desc","deleted_at":null,"created_at":"2017-03-08 16:23:01","updated_at":"2017-03-08 16:23:01"}
与:
$data = Model::whereId($id)->get()->only('id', 'name', 'description', 'created_at');
我得到一个空结果。
我很确定我没有以正确的方式调用该方法。
我也试过在从 DB 获得结果后调用它,比如 $data->only('...')
或 $data->except('...')
没有任何运气。
如有任何帮助,我们将不胜感激!谢谢!
很奇怪,我设法通过创建一个新变量来做到这一点,该变量将保存结果的 collect()
(这是模型实例)
所以这有效:
$data = Model::whereId($id)->first();
$return = collect($data)->except('updated_at', 'deleted_at');
return Response::json($return);
在某种程度上它是有道理的,因为它不是模型相关的方法,而是解析集合对象一。