laravel - 需要有关在播放器控制器中传递 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);
}
解决方案
听起来好像$club
又回来了null
,这就是为什么 Laravel 在您尝试使用players()
它时会出错的原因。您是否检查过这$request->get('club_id')
是否给了您您的期望?
也不要忘记,$player
在你这样做之前,你的 new 还没有完全存在于数据库中$player->save()
。不确定您是否可以保存它并$club
在一行中创建它的关系。您可以尝试先保存它,然后再附加它。
推荐阅读
- r - 减少程序计算时间的建议
- regex - 尝试通过正则表达式在类别中查找前 10 名产品
- c++ - 使用boost串口读取时无法加入线程
- docker - Dockerfile,服务 cron 失败
- sql - 层次比较
- cypress - 使用赛普拉斯如何在一个域上运行预测试代码,然后再在另一个域上执行所有测试
- javascript - 更改浏览器背景颜色
- wordpress - 这是 WP GraphQL (wordpress) 的安全问题吗?
- android - Android tflite 将输出位置转换为屏幕上的边界框
- javascript - Node JS Express 路由只能通过单击按钮访问