Laravel JSON响应与雄辩


Laravel JSON Response with Eloquent

我有三个表,分别是threads,posts,users

线程数

id
title
etc.

的文章了

id
thread_id
user_id
post
post_date
etc.

用户了

id
username 
password
email
etc.

当用户想要查看线程时,我只需使用post数据调用jquery ajax请求来发送线程id并返回以下代码:

Response::eloquent(Thread::find(Input::get('threadid'))->posts()->get());

这段代码完美地完成了他的工作,并返回相同thread_id的帖子。(post model也通过查找user_id来加载用户)。

然而,这段代码抓取了帖子和用户的每个属性,我指的是json, post_date, post_updaterreason, user_password, user_email中的所有列。

我只想用json抓取post, username和post_date

您可以将public static $hidden = array('list', 'of', 'fields');添加到扩展Eloquent的模型中。那么在数组中枚举的任何字段都不会返回。有关更多信息,请参阅文档。

例如

class User extends Eloquent {
  public static $hidden = array('password', 'email');
}

将返回不包含passwordemail的用户模型

如果您使用的是laravel 3,这可能与版本4相同,您应该能够使用get方法指定您想要的列。

Response::eloquent(Thread::find(Input::get('threadid'))->posts()->get(['username','post_date']));