我有一个名为champ_sales
的表,其中包含属于表champions
的拥护者。我已经正确设置了模型,并且我试图以与此处的文档完全相同的方式查询:http://laravel.com/docs/eloquent#querying-relations状态,但它无法正常工作。
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');
}
}
我的查询:在start_date
champions
中查找id=2
$champsales = ChampSales::find(2);
echo $champsales->champ->start_date;
运行这个给了我一个模糊的错误,上面写着"试图获得非对象的属性"。我不确定自己做错了什么,按照文档说明点。
答案 0 :(得分:2)
我刚修好了。我在champ()中定义了本地密钥和外键。我认为laravel命名约定会很好,但我猜不是。
class ChampSales extends Eloquent {
protected $table = 'champ_sales';
public function champ(){
return $this->belongsTo('Champion', 'champion_id', 'id');
}
}