php - Symfony 4 Match 方法如火种
问题描述
我在一个网站上为我的最后一个学校项目工作,这是一个网站,(作为普通用户)您可以与教练匹配,一旦你们两个匹配在一起,您可以共享一个页面,教练可以在其中更新您的日常锻炼程序。
我被匹配方法困住了,我的实体User
有一个属性,idCoach
它是一个可以包含其他Users
. 这个想法是,当您在教练的个人资料页面上,并按下匹配按钮时,它会将教练添加到您的 idCoach 属性中。这是我的用户实体的财产:
/**
* @ORM\OneToMany(targetEntity="App\Entity\User", mappedBy="idSportif")
*/
private $idCoach;
这是我在控制器上尝试的:
/**
* @Route("/user/match/{id}", name="match")
*/
public function matchCoach(ObjectManager $om, User $user) {
$currentUser = $this->getUser();
$currentUser->addIdCoach($user);
$om->persist($currentUser);
$om->flush();
return $this->render('profile/index.html.twig', [
'user' => $currentUser,
]);
}
但它给了我一个错误信息:
在 null 上调用成员函数 addIdCoach()。
解决方案
所以 getUser() 返回 null,这就是你得到错误的原因。
您的控制器是否扩展了 AbstractController 并且 getUser() 因此应该返回当前登录的用户?在这种情况下,您似乎没有登录。我会检查安全配置以确保只有登录的用户才能访问此 url。
进一步评论:
- 你的命名有点混乱,什么是“idCoach”?如果此属性包含相关的教练,我将其命名为“教练”。
- 您的方法会更改数据,因此只能通过 POST 而不是 GET 调用它。
推荐阅读
- javascript - 错误请求:无法解析实体:找不到从字节偏移 3589 开始的实体的结尾(在 bot 电报 api 中)JavaScript
- javascript - 在 div 中制作 X 的问题 用于使 div 消失
- javascript - nativescript:使用 ajax(获取)发布请求上传使用相机拍摄的图像
- android - 我如何为 android 应用程序使用开源代码,对其进行修改并将其发布到 Playstore,例如 Tachiyomi
- html - Bootstrap 4粘性下拉和粘性导航重叠问题
- python - PyQt5多页应用:将主类分成几个文件?
- css - 快速的屏幕空间渐变效果
- java - Springboot Security + AngularJS Application + Memory 和 UserService 认证 + 自定义登录页面
- command-line - 如何使用 * 来包含偶数点文件
- docker-compose - dockerfile RUN echo 多行并带有变量