У меня есть 4 таблицы с соответствующими моделями, а именно:
//Table is applications
class Application extends BaseModel {
public function bill(){
return $this->belongsTo(Bill::class,'bill_id');
}
}
//Table is bills
class Bill extends BaseModel {
public function groups(){
return $this->hasMany(Group::class,'group_id');
}
}
//Table is groups
class Group extends BaseModel {
public function items(){
return $this->hasMany(Item::class,'item_id');
}
}
//Table is items
class Item extends BaseModel {
// some props
}
Каждый Application
имеет Bill
, который затем делится на Groups
. Каждый group
имеет Items
. Обратите внимание, что таблица Items
определяет item
и amount/unitprice
каждого элемента.
Это то, что я хочу:
Изнутри модели Application
Я хочу определить функцию для возврата Items. Я пробовал следующее:
class Application extends BaseModel {
...
public function billItems()
{
return $this->with('bill.groups.items');
}
}
Все, что я получаю, это:
"message": "\Application::billItems must return a relationship instance.",
"exception": "LogicException",
Что не так. Что я могу сделать, чтобы он заработал? Я использую Laravel 5,7