【发布时间】:2016-06-10 12:54:28
【问题描述】:
好吧,我是 Laravel 的新手,我想在我的控制器中执行一个函数,它返回一个包含一个用户的所有列表的 JSON,我想通过电子邮件过滤用户,这不是主键,但是我在这里遇到了很多问题,而 laravel 的文档对此没有任何解释。
好的,所以我有一个具有此属性和关系的类用户:
用户.php
protected $fillable = [
'nom', 'email', 'password', 'data_de_naixament', 'sexe', 'type', 'imatge_usr', 'codi_postal'
];
public function lists()
{
return $this->hasMany('App\List');
}
还有一个班级列表:
List.php
protected $fillable = ['nom_llista', 'id_user'];
public function user()
{
return $this->belongsTo('App\User', 'id_user');
}
所以我知道我必须做一个 JOIN 并将输入参数与 User 表的电子邮件列进行比较,但我无法得到它,因为他们根本不懂 eloquent 的语法。
我可以做一个存储所有列表然后通过电子邮件过滤的功能,但如果我有 2000 个列表,那么这不是有效的。
希望您能帮助我,并为我糟糕的英语感到抱歉。
【问题讨论】:
-
如果您执行
$user->whereEmail('email@example.com')->first()->lists(),您将获得该用户的所有列表。这是你想要做的吗? -
根本没用,“data”返回null,但下面的答案已经奏效了,还是谢谢!!
标签: laravel join filter eloquent foreign-key-relationship