我正在制作足球博客,我想让我可以创建球员,但是我对此有疑问,因为我变得很反感“在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);
}
答案 0 :(得分:0)
$club
之类的声音又回来了null
,这就是为什么Laravel在尝试使用players()
时会出错的原因。您是否检查过$request->get('club_id')
给您的期望是什么?
也不要忘记新的$player
在数据库中还不存在,直到您执行$player->save()
为止。不知道是否可以保存它,并且还可以一行创建它与$club
的关系。您可以尝试先保存它,然后再附加它。