需要有关在玩家控制器中传递club_id的帮助

时间:2019-08-26 16:54:23

标签: laravel

我正在制作足球博客,我想让我可以创建球员,但是我对此有疑问,因为我变得很反感“在null上调用成员函数players()”我知道问题出在哪里,但我没有知道如何解决,我在评论和帖子中遇到了类似的问题,但是我做到了,现在又遇到了同样的问题,但是它不起作用

//PlayersController  
public function store(Request $request)
{
$this->validate($request, [
'fname' => 'required',
'lname' => 'required',
'age' => 'required',
'country' => 'required',
'position' => 'required',
'image' => 'image|nullable|max:1999',
'text' => 'required'

]);

//create Player

$player = new Player;
$player->fname = $request->input('fname');
$player->lname = $request->input('lname');
$player->age = $request->input('age');
$player->country = $request->input('country');
$player->position = $request->input('position');
$player->image = $fileNameToStore;
$player->text = $request->input('text');
$club = Club::find($request->get('club_id')); //problem
$club->players()->save($player); //problem
}

//club model

public function players()
{
    return $this->hasMany(Player::class);    

}

//player model

public function club()
{
    return $this->belongsTo(Club::class);
}

1 个答案:

答案 0 :(得分:0)

$club之类的声音又回来了null,这就是为什么Laravel在尝试使用players()时会出错的原因。您是否检查过$request->get('club_id')给您的期望是什么?

也不要忘记新的$player在数据库中还不存在,直到您执行$player->save()为止。不知道是否可以保存它,并且还可以一行创建它与$club的关系。您可以尝试先保存它,然后再附加它。

相关问题