Laravel 5.4关系2表3 id

时间:2017-04-26 14:16:07

标签: php laravel laravel-5 laravel-5.4

我使用laravel 5.4,我希望从关系表中接收信息。

我在phpmyadmin中有3个表

运动员

  • ID
  • FIRST_NAME
  • LAST_NAME

类型

  • ID
  • NAME
  • SLUG

ATHLETES_TYPES

  • ID
  • TYPE_ID
  • ATHLETE_ID

我有3个模特

运动

TYPE

ATHLETEBYTYPE

我如何让关系模型从表格TYPES中获取名称和slug,以及我的桌上运动员的身份?

谢谢。

2 个答案:

答案 0 :(得分: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');
    }

并最后从ID表格中删除ATHLETES_TYPES

进行。

现在,如果您的ATHLETE类型的变量带有$ATHLETE->types,则可以获得类型的变量。

在这里阅读更多内容: https://laravel.com/docs/5.4/eloquent-relationships#many-to-many

答案 1 :(得分: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');
    }
}