hasMany返回null

时间:2015-03-20 21:37:21

标签: php laravel orm eloquent

我在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');
          }

        }

我认为这可能是必要的,因为模型是骆驼案例。

我知道这非常简单,事实上,我通过我的应用程序成功地查询了许多关系,但由于某种原因,这个关系不起作用。对我可能缺少什么的想法?

1 个答案:

答案 0 :(得分:1)

问题是关系的函数名称。 Laravel希望它是骆驼案例:beerDistribution()

改变这一点你应该是好的。 (你不必指定外键,Laravel会将camelCase转换为snake_case)