我有一个名为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=2
的champions
表中查找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');
}
}