2016-11-14 17 views
1

私はUserモデル& Saleモデルを持っています。ユーザーは商人または顧客のいずれかになります。同じモデル間に2対1の関係があります

販売が行われるとき、販売は販売業者に属するだけでなく、顧客にも属します。

私は売りにmerchant_id &のsale_idを与えて、モデルに2つの異なる関係を作ることができると考えました。

ちょうど私には気に入らなかった。だから私の質問は、これについて行くより良い方法はありますか?私は開発の初期段階にあります。データベースを少し変えても構いません。私はそれが1対1ではありませんlaravel 5.3

+0

テーブルスキーマを表示できますか? –

答えて

1

を使用してい

、それはmany-to-many関係とsales表は、ピボットテーブルである必要があります。関係は、通常、次のようになります。customer_idmerchant_idは外部キーです

class User extends Authenticatable 
{ 
    public function customers() 
    { 
     return $this->belongsToMany('App\User', 'sales', 'customer_id', 'merchant_id'); 
    } 

users表にidを指摘しました。

salesテーブルでたくさんのことをしている場合は、このピボットテーブルのモデルSaleをそのまま使用してください。

+1

salesをピボットテーブルとして使用するとは思わなかった!ありがとう、素晴らしい解決策。 – GioCharlieHorse

+0

ほとんどの場合、販売者または顧客から販売を受けることです。または他の方法で。商人から顧客に移動することはありません。 これはちょうど毎回私を販売テーブルの向こうに移動させてもらえませんか? – GioCharlieHorse

+0

私はUser-> saleのようなことを言うことができるようになりたいと売りを得る。または、販売 - >顧客または販売 - >商人から。 これで、私はセールスに電話をかけると、そのセールスによって接続されている他のユーザーが表示されます。 – GioCharlieHorse

関連する問題