我在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”)
我该怎么做?
由于
答案 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
表中选择的字段,以便从查询中排除该字段,但默认情况下它没有隐藏。