問題:如何觸摸來自同一模型的模型?Laravel觸摸(遞歸)
詳細信息: 我正在使用Laravel 5.4構建用於在人員之間租用書籍的應用程序。 在每次交易中都有兩部分:有關所有者VS信息的信息,涉及出租人的信息。
因爲雙方,我選擇只使用一個名爲rents
雙方的表。要區分哪些是我添加了包含「所有者」或「借款人」的字段rent_side
。 如果我想顯示/搜索一個人的歷史,這可以很容易。如果有2個或更多的表格,我將不得不選擇所有顯示歷史記錄所需的數據。
由於共同編號爲couple_id
,這兩個方面耦合在一起。
從每一面,我可以看到相對的一側由於地處模型App\Rent
下面我命名reverse
,在那裏我做的方法:
public function reverse()
{
return $this->hasOne('App\Rent', 'couple_id', 'couple_id')
->where('id', '!=', $this->id);
}
因爲我需要更新父timestaps並根據laravel documentation我使用了以下內容:
protected $touches = ['reverse'];
問題是,這種觸摸會影響同一模型。所以當我更新/插入一條新記錄時,請求在發送錯誤之前最多需要4分鐘。彷彿它進入了一個無限循環。
有沒有辦法從相同的模型觸摸模型?
相關模型這的確是一個死循環,一個將觸按B這又將倒好,我建議傾聽雄辯的事件,並在不相等時更新反向的時間戳。 – milo526
@ milo526感謝您的建議。讓我試試看吧。 – Warrio