Laravel belongsTo&;hasMany关系不起作用


Laravel belongsTo & hasMany relation not working

我有一个名为champ_sales的表,其中包含属于表champions的冠军。我已经正确地设置了我的模型,并试图以与此处文档完全相同的方式进行查询:http://laravel.com/docs/eloquent#querying-关系状态,但不起作用。

class ChampSales extends Eloquent {
    protected $table = 'champ_sales';
    public function champ(){
        return $this->belongsTo('Champion');
    }
}

class Champion extends Eloquent {
    protected $table = 'champions';
    public function skins(){
        return $this->hasMany('Skin');
    }
//relevent relation here:
    public function championOnSale(){
        return $this->hasMany('ChampSales');
    }
    public function skinOnSale(){
        return $this->hasMany('SkinSales');
    }
}

我的查询:在id=2champions表中查找start_date

$champsales = ChampSales::find(2);
echo $champsales->champ->start_date;

运行这个程序会给我一个模糊的错误,上面写着"试图获取非对象的属性"。"我真的不确定我做错了什么,"她一针见血地说。

我刚刚修复了它。我在champ((中定义了本地密钥和外键。我原以为laravel命名惯例会很好,但我想不会。

class ChampSales extends Eloquent {
    protected $table = 'champ_sales';
    public function champ(){
        return $this->belongsTo('Champion', 'champion_id', 'id');
    }
}