Symfony - findOneOrFail returns 数组消息
Symfony - findOneOrFail returns array message
在我的 Symfony 服务中,我想添加一些小的编辑,所以我决定最好在 class.
中进行
在我的控制器中,我从我的请求中得到 storyId(它不是 table ID,它是一个具有不同字符的字符串),例如:
$story = json_decode($request->getContent(), true);
$storyId = $story['storyId'];
$freeStoryName = $this->storyRepo->findOneOrFail(['storyId' => $storyId]);
$story->freeStoryName($freeStoryName);
return $this->json(["message" => "SUCCESS"]);
在我的实体中 class 我的处理方式如下:
public function freeStoryName(Story $story): Story
{
$this->setPreviousStoryName($story->getStoryName());
$story->setStoryName(null);
}
我收到错误消息:
Call to a member function freeStoryName() on array
我知道消息的意思但不明白?这是 findOne()
方法..
另一个问题是,我是否需要像在服务中那样在实体 class 中使用 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();
在我的 Symfony 服务中,我想添加一些小的编辑,所以我决定最好在 class.
中进行在我的控制器中,我从我的请求中得到 storyId(它不是 table ID,它是一个具有不同字符的字符串),例如:
$story = json_decode($request->getContent(), true);
$storyId = $story['storyId'];
$freeStoryName = $this->storyRepo->findOneOrFail(['storyId' => $storyId]);
$story->freeStoryName($freeStoryName);
return $this->json(["message" => "SUCCESS"]);
在我的实体中 class 我的处理方式如下:
public function freeStoryName(Story $story): Story
{
$this->setPreviousStoryName($story->getStoryName());
$story->setStoryName(null);
}
我收到错误消息:
Call to a member function freeStoryName() on array
我知道消息的意思但不明白?这是 findOne()
方法..
另一个问题是,我是否需要像在服务中那样在实体 class 中使用 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();