laravel belongsTo给出null

时间:2016-06-22 14:53:33

标签: php laravel laravel-4 laravel-5 eloquent

属于laravel中的关系返回null

public function games(){
    return $this->belongsTo('App\Models\Game');
  }

但是当我提供密钥作为参数时,似乎工作正常

  public function games(){
        return $this->belongsTo('App\Models\Game','game_id');
      }

但根据docs game_id本身是默认参数。我在这里失踪的小事是什么。

由于

3 个答案:

答案 0 :(得分:2)

关系的belongsTo侧根据关系方法的名称构建外键名称。此行为与关系的hasOne / hasMany方不同,后者使用类的名称。

在这种情况下,您的关系方法名为games,因此它将查找外键字段games_id。您可以将外键字段作为第二个参数提供,如您所示,或者您可以将关系方法重命名为game()

答案 1 :(得分:1)

看起来您的方法“游戏”的名称可能是问题。具有1对多关系的假设是父类是单数,而子是复数。尝试将名称“游戏”更改为“游戏”,不应要求使用关键参数。

此时,我猜Laravel认为你的id键是“games_id”。

答案 2 :(得分:0)

就我而言,我使用public来定义变量。当我更改为protected时,它起作用了。

public $fillable = [..class properties..];

更改为

protected $fillable = [..class properties..];