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);
    ...
}