Русское сообщество разработки на PHP-фреймворке Laravel.
Ты не вошёл. Вход тут.
Страницы 1
Таблицы:
categories
--id
materials
--id
category_material
--id
--category_id
--material_id
Модели:
class Material extends Model {
public function category(){
return $this->belongsToMany('App\Category');
}
}
class Category extends Model {
public function material(){
return $this->belongsToMany('App\Material');
}
}
Мне нужны все материалы, у которых в таблице-связи "category_id = 1"
Пробую:
$category_id = '1';
$materials = Material::with('categories')->where('category_id', $category_id)->get();
//Unknown column 'materials.category_id'
$category_id = '1';
$materials = Material::with(['category' => function($query) use ($category_id){
$query->where('category_id', $category_id);
}])->get();
//Column 'category_id' in where clause is ambiguous ...
Помогите пожалуйста
С чего так в with() вцепился не пойму, он тут не в тему, если уж такой путь выбрал, то делай через whereHas().
Если нормально, то:
$categories = Category::find(1)->material; или $categories = Category::find(1)->material()->get();
Желательно в моделях названия поменять, поставить множественные значения (как названия таблиц), всё таки связь многие ко многим.
Страницы 1