2015-06-13 30 views
0

我有ContactForm模型屬於IssueCat模型。這種關係在模型中定義,像這樣:laravel關係拋非物件錯誤

class ContactForm extends \Eloquent { 

    // Add your validation rules here 
    public static $rules = [ 
     // 'title' => 'required' 
    ]; 

    // Don't forget to fill this array 
    protected $fillable = []; 

    public function issue_cat(){ 
     return $this->belongsTo('IssueCat'); 
    } 

} 

class IssueCat extends \Eloquent { 

    // Add your validation rules here 
    public static $rules = [ 
     // 'title' => 'required' 
    ]; 

    // Don't forget to fill this array 
    protected $fillable = []; 

    public function contact_forms(){ 
     return $this->hasMany('ContactForm'); 
    } 

} 

當我查詢使用$cf = ContactForm::findOrFail($id)接觸形式,下面的腳本拋出錯誤

$cf->issue_cat->issue_name 

僅供參考,以ContactForm的一個表ⅠIssueCat的外鍵issue_cat_id這是解決issue_cats.id。可能是什麼問題,我相信我錯過了什麼。

回答

0

在嘗試將該動態屬性用作對象之前,您需要檢查null值。如果關係不存在於數據庫中,它可以返回null。

檢查您正在使用的當前聯繫表單模型的數據庫記錄是否具有與現有IssueCat記錄相對應的正確密鑰集。

您可能想要將這些關係重新命名爲駱駝大小寫形式。

public function issueCat() { ... } 

getAttribute方法尋找這是你要訪問的屬性的駱駝箱形狀的方法。