Laravel 5.7查询3个表

时间:2018-09-23 09:27:13

标签: laravel laravel-5

我对Laravel来说还很陌生,我被困在构建更复杂的查询中:

我有3个表格及其模型:

代码:

  • id
  • 说明
  • 因子

    public function purposes() {
        return $this->hasMany('App\Purpose', 'code_purposes', 'code_id', 'purpose_id'); 
    //I could be wrong here
    }
    

目的:

  • id
  • 名称
  • 说明

代码目的:

  • code_id
  • purpose_id

      public function codes() {
        $this->belongsToMany('App\Code'); //I could be wrong here
    }
    
    public function purposes() {
        $this->belongsToMany('App\Purpose'); //I could be wrong here
    }
    

我想要的是获取所有代码,条件是目的名称='some_name'

我以为这种关系很容易,但是我无法弄清楚。

那么我该如何在Laravel中做到这一点?

1 个答案:

答案 0 :(得分:0)

Code模型中:

public function purposes() {
    return $this->belongsToMany('App\Purpose');
}

Purpose模型中:

public function codes() {
    return $this->belongsToMany('App\Code');
}

现在,您可以获取以下数据:

$codes = Purpose::where('name', 'some_name')->first()->codes;
  

关系表名称必须为code_purpose。此表不需要任何模型。

来源:Laravel Many To Many Relationships