有许多 returns 空
hasMany returns null
我在 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
此查询 returns 空:我知道找到了 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 会将驼峰式转换为 snake_case)
我在 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
此查询 returns 空:我知道找到了 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 会将驼峰式转换为 snake_case)