Laravel по-русски

Русское сообщество разработки на PHP-фреймворке Laravel.

Ты не вошёл. Вход тут.

#1 21.01.2020 10:06:15

как выбрать все курсы одной категории связанной модели многие ко многи

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()

Не в сети

#2 22.01.2020 12:42:34

Re: как выбрать все курсы одной категории связанной модели многие ко многи

Конечно не работает. У билдера нету этого метода, этот метод у модели.

$courses = Category::where('slug', 'english')->with('courses')->orderBy('order')->get();

Изменено Eskono (22.01.2020 12:42:47)

Не в сети

#3 22.01.2020 13:14:41

Re: как выбрать все курсы одной категории связанной модели многие ко многи

спасибо

Не в сети

#4 22.01.2020 15:44:40

Re: как выбрать все курсы одной категории связанной модели многие ко многи

Два пути:
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.

Не в сети

Подвал раздела