在雄辩的laravel 4中使用()和Get()

时间:2014-09-11 21:40:13

标签: php laravel laravel-4

我在laravel 4中有一个RESTful API,我有以下命令

return News::with('User')->get(array('id', 'body', 'created_at', 'categorie_id', 'user_id'))->find(1)->toJson();

然后它返回:

  

{“id”:“1”,“body”:“hola a todos”,“created_at”:“2014-09-11 17:18:01”,“categorie_id”:“3”,“user_id” : “1”, “用户”:{ “ID”: “1”, “缺口”: “天使”, “说明”:NULL, “照片”:NULL, “原点”: “西班牙”, “created_at”: “2014年9月11日   17:18:00“,”updated_at“:”2014-09-11 17:18:00“}}

它返回我从“新闻”中选择的所选列(id,body,relevancia,lat,lng,created_at,categorie_id,user_id)没关系,但我也想要从“User”中选择列,在示例我不希望json返回updated_at(来自“user”)

我该怎么做?

由于

1 个答案:

答案 0 :(得分:2)

只需在hidden模型中添加User属性,例如:

protected $hidden = array('updated_at');

那就是它。您可以在array中添加更多字段,以从json结果中排除。您也可以尝试这样的事情(而不是hidden属性):

return News::with(array('User' => function($q) {
    $q->select('username', 'email'); // select fields from user table
}))->get(array('id', 'body');

这样您就不必添加hidden属性,但可以指定要从users表中选择的字段,以便从查询中排除该字段,但默认情况下它没有隐藏。