首页 > 解决方案 > 需要有关在播放器控制器中传递 club_id 的帮助

问题描述

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

//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);
}

标签: laravel

解决方案


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

也不要忘记,$player在你这样做之前,你的 new 还没有完全存在于数据库中$player->save()。不确定您是否可以保存它并$club在一行中创建它的关系。您可以尝试先保存它,然后再附加它。


推荐阅读