laravel关系抛出非对象错误

时间:2015-06-13 05:00:57

标签: php laravel

我拥有属于ContactForm模型的IssueCat模型。这种关系在模型中定义如下:

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。可能是什么问题,我相信我错过了什么。

1 个答案:

答案 0 :(得分:0)

在尝试将该动态属性用作对象之前,您需要检查null。如果数据库中没有关系,它可以返回null。

检查您正在使用的当前联系表单模型的数据库记录是否具有与现有IssueCat记录对应的正确密钥集。

您可能还希望将这些关系重命名为驼峰大小写。

public function issueCat() { ... }

getAttribute方法将查找您尝试访问的属性的驼峰形式的方法。

相关问题