0

在尝试使用多态关系让其他东西工作之后,似乎再也找不到我做错了什么。我有两个表设置:

付款:

- id
- name
- etc..

存款:

- id
- payment_id
- name
- etc..

我的模型关系:

支付:

public function deposits()
{
    return $this->hasMany(Deposit::class);
}

订金:

public function payments()
{
    return $this->belongsTo(Payment::class);
}

现在我在每个表中都有一个记录用于测试目的。我试图在显示存款时急于加载付款:

例如:

$deposits = Deposit::with('payments')->get();

这不会返回与其关联的付款,只是返回null关系。在我的表中,payment_id 为 1,就像付款表中的 id 一样。据我回忆,这应该可行。我错过了什么?

编辑,getQueryLog 返回:

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) } }

在此处输入图像描述

4

1 回答 1

0

改变了我在我的存款模型中的关系并且它有效:

public function payment()
{
    return $this->belongsTo(Payment::class, 'payment_id');
}

仍在弄清楚为什么我必须添加它,因为它也应该在没有它的情况下工作。

于 2016-07-29T15:31:08.890 回答