belongsTo relation in laravel is returning null
public function games(){
return $this->belongsTo(\'App\\Models\\Game\');
}
but when i
It looks like the name of your method "games" may be the issue. The assumption with a 1-to-many relationship is that the parent class is singular while the child is plural. Try changing the name "games" to "game" and the key argument shouldn't be required.
At this point, I'm guessing Laravel is thinking your id key would be "games_id".
In my case, i was using public
for defining variables. When I change to protected
it worked.
public $fillable = [..class properties..];
changed to
protected $fillable = [..class properties..];
The belongsTo
side of the relationship builds the foreign key name based on the name of the relationship method. This behavior is different than the hasOne
/hasMany
side of the relationship, which uses the name of the class.
In this case, your relationship method is named games
, so it will look for the foreign key field games_id
. You can either provide the foreign key field as the second parameter, as you have shown, or you can rename your relationship method to game()
.