Laravel一对多关系
Laravel one to many relation
在尝试使用多态关系让其他东西工作后,似乎再也找不到我做错了什么了。我有两个 tables 设置:
付款:
- id
- name
- etc..
存款:
- id
- payment_id
- name
- etc..
我的模型关系:
付款:
public function deposits()
{
return $this->hasMany(Deposit::class);
}
存款:
public function payments()
{
return $this->belongsTo(Payment::class);
}
现在我在每个 table 中都有一条记录用于测试目的。我试图在显示存款时立即加载付款:
例如:
$deposits = Deposit::with('payments')->get();
这不是 return 与之关联的付款,只是 return 与 null
的关系。在我的 table 中,payment_id 是 1,就像付款 table 中的 id 一样。据我回忆,这应该有效。我错过了什么?
编辑,getQueryLog returns this:
array(3) { [0]=> array(3) { ["query"]=> string(52) "select * from `users` where `users`.`id` = ? limit 1" ["bindings"]=> array(1) { [0]=> int(1) } ["time"]=> float(0) } [1]=> array(3) { ["query"]=> string(24) "select * from `deposits`" ["bindings"]=> array(0) { } ["time"]=> float(0) } [2]=> array(3) { ["query"]=> string(53) "select * from `payments` where `payments`.`id` in (?)" ["bindings"]=> array(1) { [0]=> int(0) } ["time"]=> float(0) } }
更改了我在存款模型中的关系并且有效:
public function payment()
{
return $this->belongsTo(Payment::class, 'payment_id');
}
仍在弄清楚为什么我必须添加它,因为没有它它也应该工作。
在尝试使用多态关系让其他东西工作后,似乎再也找不到我做错了什么了。我有两个 tables 设置:
付款:
- id
- name
- etc..
存款:
- id
- payment_id
- name
- etc..
我的模型关系:
付款:
public function deposits()
{
return $this->hasMany(Deposit::class);
}
存款:
public function payments()
{
return $this->belongsTo(Payment::class);
}
现在我在每个 table 中都有一条记录用于测试目的。我试图在显示存款时立即加载付款:
例如:
$deposits = Deposit::with('payments')->get();
这不是 return 与之关联的付款,只是 return 与 null
的关系。在我的 table 中,payment_id 是 1,就像付款 table 中的 id 一样。据我回忆,这应该有效。我错过了什么?
编辑,getQueryLog returns this:
array(3) { [0]=> array(3) { ["query"]=> string(52) "select * from `users` where `users`.`id` = ? limit 1" ["bindings"]=> array(1) { [0]=> int(1) } ["time"]=> float(0) } [1]=> array(3) { ["query"]=> string(24) "select * from `deposits`" ["bindings"]=> array(0) { } ["time"]=> float(0) } [2]=> array(3) { ["query"]=> string(53) "select * from `payments` where `payments`.`id` in (?)" ["bindings"]=> array(1) { [0]=> int(0) } ["time"]=> float(0) } }
更改了我在存款模型中的关系并且有效:
public function payment()
{
return $this->belongsTo(Payment::class, 'payment_id');
}
仍在弄清楚为什么我必须添加它,因为没有它它也应该工作。