Один-ко-Многим

Пример отношенияОдин-ко-Многим Brand и Product
Product может принадлежать только одному Brand
Brand может иметь много Product
class Product extends Model
{
public function brand()
{
return $this->belongsTo(Brand::class);
}
}
class Brand extends Model
{
public function products()
{
return $this->hasMany(Product::class);
}
}
Получение данных «Один-ко-Многим»
// получаем все продукты которые связаны с нашим брендом
$brand = Brand::find(1);
$products = $brand->products;
// получаем бренд который связан с этим продуктом
$product = Product::find(1);
$brand = $product->brand;
Создание отношения «Один-ко-Многим»
// создаём продукт
$product = new Product();
$product->name = 'iPhone X';
$product->slug = 'iphone-x';
$product->price = '899.99';
$product->qty = 10;
$product->description = 'Some description';
// Выбираем бренд с айди 1
$brand = Brand::find(1);
// связываем этот продукт с брендом и сохраняем его
$product->brand()->associate($brand);
$product->save();
// как альтернативный вариант сохранения продукта связанного с брендом
$brand->products()->save($product);
// Вы также можете использовать метод saveMany() вместо save() для сохранения нескольких связанных моделей.
Удаление отношения «Один-ко-Многим»
// берём родительский обьект $brand
$brand = Brand::find(1);
// и удаляем продукт связанный с этим брендом
$brand->products()->delete();
Last updated