laravel 5方法only()或except()问题

时间:2017-03-08 14:37:57

标签: laravel-5 laravel-5.4

我在使用only()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"}

with:

$data = Model::whereId($id)->get()->only('id', 'name', 'description', 'created_at');

我得到一个空的结果。

我很确定我没有以正确的方式调用该方法。 我在尝试从DB获取结果后尝试调用它,例如$data->only('...')$data->except('...')但没有运气。

任何帮助将不胜感激!谢谢!

1 个答案:

答案 0 :(得分:0)

奇怪的是,我设法通过创建一个新变量来实现它,该变量将保存结果的collect()(这是模型实例)

所以这很有效:

    $data = Model::whereId($id)->first();
    $return = collect($data)->except('updated_at', 'deleted_at');

    return Response::json($return);

不知何故,它有意义,因为它不是与模型相关的方法,而是解析集合对象1。