Symfony2.8:spl_object_hash() 期望参数 1 为对象,整数给定
Symfony2.8: spl_object_hash() expects parameter 1 to be object, integer given
我知道很多人问过这个问题,但我真的不知道怎么解决。
我认为 Controller 中的某处方法有错误:
/**
* View action.
*
* @param Website $website Website entity
* @param Request $request
* @param \Symfony\Component\HttpFoundation\Request $request HTTP Request
* @return \Symfony\Component\HttpFoundation\RedirectResponse|\Symfony\Component\HttpFoundation\Response HTTP Response
* @internal param Rating $rating
* @Route(
* "/{id}",
* name="website_view",
* )
* @Method({"GET", "POST"})
*/
public function viewAction(Website $website, Request $request)
{
$websiteId = $this->get('app.repository.website')->findOneById($website)->getId();
$rating = new Rating();
$form = $this->createForm(RatingType::class, $rating);
$form->handleRequest($request);
if ($form->isSubmitted() && $form->isValid()) {
$rating->setWebsite($websiteId);
$this->get('app.repository.rating')->save($rating, $website);
$this->addFlash('success', 'message.created_successfully');
}
return $this->render(
'website/view.html.twig',
['website' => $website,
'rating' => $rating,
'form' => $form->createView()]
);
有问题的行是:
$rating->setWebsite($websiteId);
如果缺少该行,它不会将网站 ID 设置为评级,但是当添加该行时,出现上述错误。
我在 Rating 实体中有必要的 getter 和 setter,在 Rating Repository 中有 persist 和 flush 保存方法。
问题可能出在我将此方法放在 Website Controller 而不是 Rating Contoller 中吗?
在此先感谢您的帮助。
使用网站对象而不是网站 id 作为参数调用此函数
...
public function viewAction(Website $website, Request $request)
{
$websiteId = $website->getId();
...
$rating->setWebsite($website);
...
}
我知道很多人问过这个问题,但我真的不知道怎么解决。
我认为 Controller 中的某处方法有错误:
/**
* View action.
*
* @param Website $website Website entity
* @param Request $request
* @param \Symfony\Component\HttpFoundation\Request $request HTTP Request
* @return \Symfony\Component\HttpFoundation\RedirectResponse|\Symfony\Component\HttpFoundation\Response HTTP Response
* @internal param Rating $rating
* @Route(
* "/{id}",
* name="website_view",
* )
* @Method({"GET", "POST"})
*/
public function viewAction(Website $website, Request $request)
{
$websiteId = $this->get('app.repository.website')->findOneById($website)->getId();
$rating = new Rating();
$form = $this->createForm(RatingType::class, $rating);
$form->handleRequest($request);
if ($form->isSubmitted() && $form->isValid()) {
$rating->setWebsite($websiteId);
$this->get('app.repository.rating')->save($rating, $website);
$this->addFlash('success', 'message.created_successfully');
}
return $this->render(
'website/view.html.twig',
['website' => $website,
'rating' => $rating,
'form' => $form->createView()]
);
有问题的行是:
$rating->setWebsite($websiteId);
如果缺少该行,它不会将网站 ID 设置为评级,但是当添加该行时,出现上述错误。
我在 Rating 实体中有必要的 getter 和 setter,在 Rating Repository 中有 persist 和 flush 保存方法。
问题可能出在我将此方法放在 Website Controller 而不是 Rating Contoller 中吗?
在此先感谢您的帮助。
使用网站对象而不是网站 id 作为参数调用此函数
...
public function viewAction(Website $website, Request $request)
{
$websiteId = $website->getId();
...
$rating->setWebsite($website);
...
}