Таким образом, у order
есть ключ извне offer_id
.
И у offer
есть ключ иностранца item_id
.
Элемент может быть в нескольких предложениях.Но у каждого предложения есть один пункт.
Предложение может быть в нескольких заказах.Но у каждого заказа есть одно предложение.
Когда я делаю это:
$orders = Auth::user()->orders()
->with('offer')
->get();
Я получаю это:
id: 3,
user_id: 1,
offer_id: 5,
created_at: "2019-02-15 00:40:31",
updated_at: "2019-02-15 00:40:31",
offer: {
id: 5,
item_id: 3,
created_at: "2019-02-15 00:39:40",
updated_at: "2019-02-15 00:39:40"
}
Как видите, я могу получить это заэто предложение item_id: 3
но я хочу получить весь предмет;все его столбцы, а не только идентификатор.
Обычно вы объединяете эти две таблицы.Как это сделать с Eloquent?
Вот мои красноречивые отношения:
Заказ
public function offer()
{
return $this->belongsTo(Offer::class);
}
Предложение
public function orders()
{
return $this->hasMany(Order::class);
}
public function item()
{
return $this->hasOne(Item::class);
}
Элемент
public function offers()
{
return $this->belongsToMany(Offer::class);
}