0
我有兩張桌子: 遊客, 遊覽。 (和相應的模型遊客,旅遊)。Laravel同一張桌子之間的一對多和一對一關係
我已經成功地在它們之間建立了多對多的關係。當我
$tour->tourists()->attach($tourist);
它在表Tour_Tourists創建一個新的記錄。 (tour_id,tourist_id,created_at,updated_at)。它顯示哪些遊客與特定的旅遊一起去。
現在我需要創建另一個實體:買方。買方是支付旅行費用的遊客之一。只有其中一名遊客可以成爲買家。
我已經在這兩種模式建立一個一對一的關係:
<?php
命名空間應用;
類遊延伸模型 { 公共函數遊客(){
return $this->belongsToMany('App\Tourist')
->withTimestamps();
}
public function buyer() {
return $this->hasOne('App\Tourist')
->withTimestamps();
}
}
(和在旅遊模型相同的,除了我改變 '應用\旅遊' 到「應用程序\遊「:
public function buyer() {
return $this->hasOne('App\Tour')
->withTimestamps();
)
b UT當我這樣做:
$tour->buyer()->($tourist)
(其中$旅遊和旅遊$包含從數據庫中相應的記錄),我得到:
BadMethodCallException with message 'Call to undefined method Illuminate\Database\Query\Builder::withTimestamps()'
我有我這樣做是完全錯誤的感覺。任何人都可以指出我應該繼續前進的方向嗎?
謝謝。
謝謝德文!但我認爲我的整體做法是錯誤的。你會在我的地方做什麼? –
很難從你寫的數據庫爲買家設置的方式告訴你。我會重寫一個關於你的其他問題的新問題,但要更加清晰和簡潔。 SO的目標是幫助未來的用戶和現有的用戶一樣多,所以好的問題/答案應該集中在一個清晰而簡潔的問題上。 – Devon
好吧,我會嘗試發佈一個新的更好的問題,然後:) –