條件我有4個表:Laravel凡祖父母雄辯關係
Account (id, name)
Type (id, account_id, name)
Category (id, type_id, name)
Money (id, category_id, date, amount)
我定義的模型
的關係,但我的問題是如何騙錢的數據與帳戶ID 2?
Account::find(2)-> type()-> category()->money
不工作
條件我有4個表:Laravel凡祖父母雄辯關係
Account (id, name)
Type (id, account_id, name)
Category (id, type_id, name)
Money (id, category_id, date, amount)
我定義的模型
的關係,但我的問題是如何騙錢的數據與帳戶ID 2?
Account::find(2)-> type()-> category()->money
不工作
假設你創建你的關係,你可以這樣來做:
$account = Account::with('type.category.money')->find(2);
和顯示的錢,你現在可以使用:
echo $account->type->category->money->amount;
在上面的echo
我當然假設你在每個記錄中都有這些表中的數據。如果沒有,你需要添加額外的檢查,以確保你不顯示財產null
如果你只需要'金錢'的最終結果,並且有在模型上建立反相關係。
$money = Money::whereHas('category.type.account', function ($q) use ($id) {
$q->where('id', $id);
})->get();
// get() or first() depending whether these relationships return many
Laravel Docs - Eloquent Relationships - Querying Relationships - Querying Relationship Existence