2017-04-26 119 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