0

ポリモーフィックリレーションを使用して何か他のものを機能させようとした後、私が間違っていることを見つけることができないようです..私は2つのテーブルをセットアップしています:

支払い:

- id
- name
- etc..

預金:

- id
- payment_id
- name
- etc..

私のモデル関係:

支払い:

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

デポジット:

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

これで、テスト用に各テーブルに 1 つのレコードが作成されました。預金を表示するときに支払いを積極的にロードしようとしています:

例えば:

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

これは、関連付けられている支払いを返すのではなくnull、関係に対して返すだけです。私のテーブルでは、支払いテーブルの id と同じように、payment_id は 1 です。私の記憶では、これはうまくいくはずです。私は何が欠けていますか?

編集、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

Deposit モデルの関係を変更すると、次のように機能します。

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

追加しなくても機能するはずなので、追加する必要がある理由をまだ考えています。

于 2016-07-29T15:31:08.890 に答える