属于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
本身是默认参数。我在这里失踪的小事是什么。
由于
答案 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..];