2017-04-26 98 views
-1

我使用laravel 5.4工作,我希望從我的關係表中獲得信息。Laravel 5.4 relationship 2 tables 3 id

我在phpmyadmin的3個表

運動員

  • ID
  • FIRST_NAME
  • LAST_NAME

類型

  • ID
  • NAME
  • SLUG

ATHLETES_TYPES

  • ID
  • TYPE_ID
  • ATHLETE_ID

我有3種型號

運動員

TYPE

ATHLETEBYTYPE

如何我需要關係模型有名字和蛞蝓從我桌上的類型,與我的桌上運動員的身份證?

謝謝。

回答

0

這裏有關係,哥們

在app/Athlete.php

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

在app/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

你把blog_category?這是什麼 ? – MSBIZ

+0

@MSBIZ什麼都沒有。我是從我的項目複製代碼,並忘記更改一些parameter.second參數是數據透視表名稱。 – Saman