0
我有一個用戶表和「地址」表。他們可以在退房時輸入多個地址進行選擇。Laravel與樞軸表的關係,關係?
現在我希望能夠將一個地址設置爲標準發票地址,將另一個地址設置爲標準地址。我想使用一個數據透視表來做,它包含以下內容:
Schema::create('users_adresses_pivot', function (Blueprint $table) {
$table->increments('id');
$table->integer('user_id')->unsigned();
$table->foreign('user_id')->references('id')->on('users');
$table->integer('invoice_adress_id')->unsigned();
$table->foreign('invoice_adress_id')->references('id')->on('adresses');
$table->integer('delivery_adress_id')->unsigned();
$table->foreign('delivery_adress_id')->references('id')->on('adresses');
$table->timestamps();
});
但是我不確定這是否是正確的方法。這對我來說看起來有點像一個不好的習慣。如果我選擇這個選項,我該如何設置關係?因爲我需要兩個從用戶到地址的關係。我已經有了一個爲了在視圖中對他們進行宣傳。所以如果我用樞軸關係替換它,我只能得到標準發票&,而不是其他人。任何想法?
這是我目前的關係: user.php的:
public function adresses()
{
return $this->hasMany('App\Adress');
}
Adress.php:
public function user()
{
return $this->belongsTo('App\User');
}
是的你是對的。 1 upvote爲抓住我的錯誤。 – EddyTheDove
從來沒有看到你做錯了漩渦,但ty爲upvote。希望這個答案可以幫助@Scarwolf – dparoli
但是等等。多對多意味着地址可能屬於許多用戶。這是錯誤的,因爲那些是他們自己創造的地址。我只想添加一些內容,告訴我這個地址是他們的標準收貨地址,標準發票地址,兩者都不是。 – Scarwolf