【发布时间】:2019-09-28 23:10:55
【问题描述】:
如何在 laravel 模型属性上创建 where 子句
我在user 和books 之间有以下关系。其中用户 hasMany 书籍和 book 模型属于单个用户
我要select all books with pages > 100 that belongs to user_id = 2
我将 laravel 5.2 与 mysql 一起使用,并为 User 定义了一个模型,为 Book 定义了另一个模型
当我想为特定用户获取所有书籍时,我用户
return User::find(2)->books;
这很好用。但我想获得页数 > 100 的书。我使用:
return User::find(2)->books->where([['pages', '>', 100], ['chapters', '>', 3]]);
但不起作用
用户模型:
class User extends Authenticatable
{
public function books()
{
return $this->hasMany('App\Book');
}
}
图书模型
class Book extends Model
{
public function user()
{
return $this->belongsTo('App\User');
}
}
我希望得到所有 user_id = 0 并且页数 > 100 和章节 > 3 的书
【问题讨论】:
标签: laravel eloquent orm model relation