Исходя из вашего вопроса и комментария выше:
A Product
имеет много Barcode
, а Barcode
принадлежит Product
. Они имеют отношение Один ко многим .
У Outlet
много barcode
, а у Barcode
много Outlet
. Они имеют отношение Многие ко многим .
Вот как установить отношение Один ко многим.
В вашем Product
классе:
class Product extends Model
{
public function barcodes()
{
return $this->hasMany('App\Barcode');
}
}
В вашем Barcode
классе установите обратную зависимость:
class Barcode extends Model
{
public function product()
{
return $this->belongsTo('App\Product');
}
}
Вот как установить множество Отношение ко многим.
В вашем Outlet
классе:
class Outlet extends Model
{
public function barcodes()
{
return $this->belongsToMany('App\Barcode');
}
}
В вашем Barcode
классе:
class Barcode extends Model
{
public function outlets()
{
return $this->belongsToMany('App\Outlet');
}
}
Со многими ко многим отношения, вам также нужно создать промежуточную таблицу.
В этом случае ваша сводная таблица будет barcode_outlet
.
Важно: Согласно соглашению Laravel, имя промежуточной таблицы должно быть в единственном числе и в алфавитном порядке названий связанных моделей (barcode_outlet в вашем случае).
Промежуточная таблица должна содержать столбцы barcode_id
и outlet_id
. Я позволю вам соответствующим образом изменить ваши миграции.
После установки отношений вы сможете использовать Eloquent для извлечения ваших моделей.
Пример:
$barcode->outlets;
// returns a Collection of outlets
$barecode->product;
// returns a Product
$product->barcodes;
// returns a Collection of barcodes
$outlet->barcodes;
// returns a Collection of barcodes