Laravel 5.2 按用户过滤列表或显示来自 Eloquent 用户的所有列表

Laravel 5.2 Filter Lists by user or Show all lists from User with Eloquent

好的,我是 Laravel 的新手,我想在我的控制器中做一个 returns 一个 JSON 与一个用户的所有列表的功能,我想通过电子邮件过滤用户,这不是主键,但我在这里遇到了很多问题,laravel 的文档对此没有任何解释。

好的,所以我有一个 class 具有以下属性和关系的用户:

User.php

protected $fillable = [
    'nom', 'email', 'password', 'data_de_naixament', 'sexe', 'type', 'imatge_usr', 'codi_postal'
];

public function lists()
{
    return $this->hasMany('App\List');
}

还有一个class列表:

List.php

protected  $fillable = ['nom_llista', 'id_user'];

public function user()
{
    return $this->belongsTo('App\User', 'id_user');
}

所以我知道我必须做一个 JOIN 并将输入参数与用户的电子邮件列进行比较 table 但我无法得到它,因为他们根本不理解语法 eloquent.

我可以执行存储所有列表然后通过电子邮件过滤的功能,但是如果我有 2000 个列表,这就没有效率了。

希望你能帮助我,抱歉我的英语不好。

您应该阅读文档

检索信息:https://laravel.com/docs/5.1/eloquent#retrieving-multiple-models

要将集合转换为 json:https://laravel.com/docs/5.1/collections#method-tojson

加入模型: https://laravel.com/docs/5.1/eloquent-relationships#querying-relations

换句话说,您的代码可能像

$users = User::where('email', $emailYouAreLookingFor)->with('lists')->get()->toJson();