【问题标题】:hasMany returns nullhasMany 返回 null
【发布时间】:2015-03-20 21:37:20
【问题描述】:

我在 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:我知道找到了小桶对象,并且我知道该对象具有 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');
          }

        }

我认为这可能是必要的,因为模型是驼峰式的。

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

【问题讨论】:

    标签: php laravel orm eloquent


    【解决方案1】:

    问题是关系的函数名。 Laravel 期望它是驼峰式的:beerDistribution().

    改变它,你应该会很好。 (不必指定外键,Laravel 会将 camelCase 转换为 snake_case)

    【讨论】:

      猜你喜欢
      • 2019-04-17
      • 1970-01-01
      • 2012-01-24
      • 1970-01-01
      • 2018-07-21
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-06-28
      相关资源
      最近更新 更多