douruduan8812
2016-06-22 14:53
浏览 169
已采纳

laravel belongsTo给出null

belongsTo relation in laravel is returning null

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

but when i provide key as argument it seems to work fine

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

but as per the docs game_id is itself is a default argument. What is the small thing i am missing here.

Thanks

  • 点赞
  • 写回答
  • 关注问题
  • 收藏
  • 邀请回答

2条回答 默认 最新

  • douchenzhan3050 2016-06-22 15:14
    已采纳

    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().

    点赞 评论
  • douchun5976 2016-06-22 15:11

    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".

    点赞 评论

相关推荐 更多相似问题