简体   繁体   中英

laravel belongsTo gives 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

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

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

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM