У меня есть следующая таблица, которую я не могу использовать. Заказ hasMany
Продукт b/c Продукт не имеет иностранного order_id. Я хочу получить доступ ко всему через счет-фактуру, возможно ли это?Laravel 5 Вложенные отношения
Я стараюсь использовать Has Many Through
, но это A-> B-> C Отношения, я думаю, хочу, чтобы я настраивал необходимость A-> B < -C Отношения.
пользователи таблица
| id |
таблица фактура
| id | user_id |
заказ столика
| id | invoice_id | product_id |
стол продукт
| id |
Я хотел бы получить доступ ко всем данным через invoice
таблицы
СЧЕТ МОДЕЛЬ
class invoice extends Model {
public function user() {
return $this->belongsTo('App\User');
}
public function order() {
return $this->belongsTo('App\Order');
}
}
ЗАКАЗА МОДЕЛЬ
class Order extends Model
{
public function invoice()
{
return $this->belongsTo('App\Invoice');
}
}
МОДЕЛЬ ИЗДЕЛИЯ
class product extends Model
{
protected $table = 'products';
public function order()
{
return $this->belongsTo('App\Order');
}
}
Эти отношения делают * NOT * обязательно должны быть противоположностями. Единственное существенное различие между ними - это поведение по умолчанию для построения запросов. Я бы рекомендовал явно определять ваши внешние ключи, а не позволять Eloquent делать их за вас. – ash
Я явно определял его в своем файле миграции, я думаю, я просто думаю, что есть способ использовать его в лезвии, например '@foreach ($ invoice-> order() как $ order) {{$ order-> product -> ID}} '. – aahhaa
Да, это возможно, миграции и красноречие - это две разные вещи, которые не путают эти два. Ваша проблема заключается в том, что вам нужно забыть о счете и беспокоиться о 'Order' и' Order \ Line' или если вы напрямую не сопоставляете продукты с заказами; затем создайте связь между Order and Product. – ash