質問:同じモデルからモデルに触れるには?ラーベール接触(再帰的)
詳細: 私はLaravel 5.4を使用して、人々の間で書籍を借りるためのアプリケーションを構築しています。 各取引には、2つの部分があります。所有者に関する情報:本を借りる人に関するVS情報。
2面のため、私はrents
という表を両面に使用することを選択しました。それを区別するために、「所有者」または「借り手」を含むフィールドrent_side
を追加しました。 人の履歴を表示/検索したい場合は、これで簡単にできます。 2つ以上のテーブルがある場合は、履歴を表示するために必要なすべてのデータを選択するためにUNIONを作成する必要があります。
これらの2つの面は、couple_id
という共通のIDのおかげで一緒に結合されています。私は親timestapsを更新する必要があるとに応じますので
public function reverse()
{
return $this->hasOne('App\Rent', 'couple_id', 'couple_id')
->where('id', '!=', $this->id);
}
:それぞれの側から
、私はこの方法のおかげで、私は次の操作を行いところ、reverse
という名前のモデルApp\Rent
に位置して反対側を見ることができますlaravel documentation私は以下を使用しました:
protected $touches = ['reverse'];
問題はこのタッチが同じモデルに影響することです。したがって、新しいレコードを更新/挿入すると、エラーを送信するまでに4分かかることがあります。あたかも無限ループに入ったかのように。
同じモデルのモデルに触れる方法はありますか?
これは確かに無限ループで、順番に触れてしまうBに触れるだろう、私は雄弁な出来事に耳を傾け、それらが等しくないときに逆のタイムスタンプを更新することを提案する。 – milo526
@ milo526アドバイスありがとうございます。 – Warrio