2017-04-26 10 views
-1

私はlaravel 5.4を使用しています。私は関係テーブルから情報を受け取りたいと思います。Laravel 5.4の関係2つのテーブル3 id

私はphpMyAdminの中に3つのテーブル

ATHLETES

  • ID
  • FIRST_NAME
  • LAST_NAME

TYPES

を持っています
  • ID
  • NAME
  • SLUG

ATHLETES_TYPES

  • ID
  • TYPE_ID
  • ATHLETE_ID

私は私の名前とスラグを持っている関係のモデルを作成する必要がありますどのように

ATHLETEBYTYPE 3つのモデル

ATHLETE

TYPE

を持っています私のテーブルのアスリートからの私のIDと、テーブルの種類は?

ありがとうございます。

答えて

0

は関係が、あなたは、App/Athlete.phpで

をバディ

class Athlete extends Model 
{ 
    public function types(){ 
     return $this->belongsToMany('App\Type'); 
    } 
} 
アプリケーション/ Type.phpで

class Type extends Model 
{ 
    public function Athletes(){ 
     return $this->belongsToMany('App\Athlete'); 
    } 
} 
0

これは2つのモデルファイルATHLETETYPEを必要とし、多くのリレーションを多用します。ATHLETES_TYPESテーブルをピボットテーブルとして使用できます。

ため、この実装:

最初ATHLETEモデルファイルには、このメソッドを追加します。

public function types() 
    { 
     return $this->belongsToMany(TYPE::class,'ATHLETES_TYPES','ATHLETE_ID','TYPE_ID'); 
    } 

secodeがTYPEモデルに、このメソッドを追加します。

public function athletes() 
    { 
     return $this->belongsToMany(ATHLETE::class,'ATHLETES_TYPES','TYPE_ID','ATHLETE_ID'); 
    } 

、最後の削除でIDATHLETES_TYPESテーブルから提出された。

が行わ。

今では変数がATHLETEタイプの場合は$ATHLETE->typesのタイプを取得できます。

はこちら続きを読む:ここ https://laravel.com/docs/5.4/eloquent-relationships#many-to-many

+0

、ありますput blog_category ???これは何だ ? – MSBIZ

+0

@MSBIZには何もありません。私は自分のプロジェクトからコピーコードを出していましたが、parameter.secondパラメータの一部がピボットテーブル名であることを忘れました。 – Saman

関連する問題