Как создать предложение where
для атрибута модели laravel
У меня есть следующее соотношение между user
и books
.где пользователь hasMany
books и модель 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