Русское сообщество разработки на PHP-фреймворке Laravel.
Ты не вошёл. Вход тут.
class Category extends Model
{
public function courses()
{
return $this->belongsToMany('App\Course');
}
}
class Course extends Model
{
public function categories()
{
return $this->belongsToMany('App\Category');
}
}
как вывести все курсы которые имеют эту категорию? вот так не работает :
$courses = Category::where('slug', 'english')->courses()->orderBy('order')->get();
//пишет Call to undefined method Illuminate\Database\Eloquent\Builder::courses()
Не в сети
Конечно не работает. У билдера нету этого метода, этот метод у модели.
$courses = Category::where('slug', 'english')->with('courses')->orderBy('order')->get();
Изменено Eskono (22.01.2020 12:42:47)
Не в сети
спасибо
Не в сети
Два пути:
1. Получить экземпляр Category, т.е. сделать find(), и от него добывать связанные с ним courses().
2. Создать запрос к Course и наложить фильтр по whereHas('categories')
There are two hard things in computer science: cache invalidation, naming things, and off-by-one errors.
Не в сети