如何解决Symfony - findOneOrFail 返回数组消息
在我的 Symfony 服务中,我想添加一些小的编辑,所以我决定最好在课堂上进行。
在我的控制器中,我从我的请求中获得了 storyId(它不是表 ID,它是一个具有不同字符的字符串),例如:
$story = json_decode($request->getContent(),true);
$storyId = $story['storyId'];
$freeStoryName = $this->storyRepo->findOneOrFail(['storyId' => $storyId]);
$story->freeStoryName($freeStoryName);
return $this->json(["message" => "SUCCESS"]);
在我的实体类中,我处理它:
public function freeStoryName(Story $story): Story
{
$this->setPreviousStoryName($story->getStoryName());
$story->setStoryName(null);
}
然后我收到错误消息:
调用数组上的成员函数 freeStoryName()
我知道这条消息的意思,但不明白?这是 findOne()
方法..
另一个问题是,我是否需要 Entity 类中的 flush()
方法,就像我在服务中一样?
解决方法
您在 $story
上使用 freeStoryName,它是一个数组 (json_decode($request->getContent(),true);
)
您需要将您的方法用于结果:
$story = json_decode($request->getContent(),true);
$storyId = $story['storyId'];
$freeStoryName = $this->storyRepo->findOneOrFail(['storyId' => $storyId]);
$freeStoryName->freeStoryName($freeStoryName);
return $this->json(["message" => "SUCCESS"]);
如果你觉得这样做有点奇怪,你可以改变你的方法:
public function freeStoryName()
{
$this->setPreviousStoryName($this->getStoryName());
$this->setStoryName(null);
}
并使用它:
$freeStoryName->freeStoryName();
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。