条件我有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