2014-04-04 27 views
0

我有一個「企業」,「certificaten」和「companies_certificaten」表:奇怪的列名加

在我的連接表companies_certificaten我有「companies_id」和「certificaten_id」

這是部分我公司模型

public function certificaten(){ 

     return $this->belongstoMany('Certificate', 'companies_certificaten','companies_id'); 

} 

這是我的證件模型的一部分:

public function companies(){ 

    return $this->belongstoMany('Company', 'companies_certificaten','certificaten_id'); 
} 

現在,我想所有的certificaten:

'certificaten' => Company::find($company_id)->certificaten 

這是完全錯誤我得到:

SQLSTATE[42S22]: Column not found: 1054 Unknown column 'companies_certificaten.certificate_id' in 'field list' (SQL: select `certificaten`.*, `companies_certificaten`.`companies_id` as `pivot_companies_id`, `companies_certificaten`.`certificate_id` as `pivot_certificate_id` from `certificaten` inner join `companies_certificaten` on `certificaten`.`id` = `companies_certificaten`.`certificate_id` where `companies_certificaten`.`companies_id` = ?) (Bindings: array (0 => 48,)) 

這部分不會使錯誤的感覺:

'companies_certificaten.certificate_id' in 'field list' 

`companies_certificaten`.`certificate_id` as `pivot_certificate_id` 

無處在我的模型或表中我有「certificate_id」,但我有一個「certificaten_id」

laravel從哪裏得到這個「certificate_id」?不是從我。

回答

0

它是雄辯的默認命名約定,你無處覆蓋它。這將做的工作適合你:

public function certificaten(){ 
    return $this->belongstoMany('Certificate', 'companies_certificaten','companies_id', 'certificaten_id'); 
} 

那麼你會得到COMPANY_ID沒有發現錯誤,因此也更新這一項:

public function companies(){ 
    return $this->belongstoMany('Company', 'companies_certificaten','certificaten_id', 'companies_id'); 
}