我在laravel 4.2上,试图获得对象关联关系,但由于某种原因,我得到了null
。
型号:
class Keg extends Eloquent {
protected $fillable = ['beer_distribution_id', 'status', 'keg_size'];
public function beer_distribution()
{
return $this->belongsTo('BeerDistribution');
}
}
class BeerDistribution extends Eloquent {
protected $fillable = ['beer_id', 'distributor_id'];
public function kegs()
{
return $this->hasMany('Keg');
}
}
我的查询:
$distirbution = Keg::find($tap->keg_id)->beer_distribution
此查询返回null:我知道keg对象已找到,并且我知道该对象具有beer_distribution_id。
我试着在模型中指定外键,如下所示:
class Keg extends Eloquent {
protected $fillable = ['beer_distribution_id', 'status', 'keg_size'];
public function beer_distribution()
{
return $this->belongsTo('BeerDistribution', 'beer_distribution_id');
}
}
我认为这可能是必要的,因为模型是骆驼式的。
我知道这非常简单,事实上,我在应用程序中成功地查询了许多关系,但由于某种原因,这个关系不起作用。有没有想过我可能错过了什么?
问题在于关系的函数名。Laravel预计会出现骆驼型:beerDistribution()
。
改变这一点,你就会变得优秀。(您不必指定外键,Laravel会将camelCase转换为snake_case)