【发布时间】:2017-05-14 06:58:15
【问题描述】:
我正在尝试在我的模板中呈现一个控制器,以便让我拥有的控制器呈现:
public function createAction(Request $request)
{
$review = new Review();
$form = $this->createForm(ReviewType::class, $review,[
'action' => $request->getUri()
]);
$form->handleRequest($request);
if($form->isValid()) {
$manager = $this->getDoctrine()->getManager();
$manager->persist($review);
$manager->flush();
}
return $this->render('BookReviewsBundle:Review:index.html.twig',
['form' => $form->createView()]);
}
在 index.html.twig 模板中,控制器返回我有:
{% block body %}
{{ form_start(form) }}
{{ form_end(form) }}
{% endblock %}
然后是我要在其上呈现控制器的页面:
{{ render(controller("BookReviewsBundle:Review:create")) }}
但是,我收到此错误:
在渲染模板期间抛出异常(“Catchable Fatal Error: Object of class Proxies__CG__\Book\BookBundle\Entity\Book 无法转换为字符串”)
有谁知道我做错了什么?
【问题讨论】:
-
是否可能存在拼写错误?我在错误消息中看到:
\Reviewr\BookBundle\Entity\Book注意Reviewr的拼写。 -
@AlvinBunk 抱歉,我已经更新了问题
-
您的意思是您的 Twig 文件中有:
{{ render(controller("BookReviewsBundle:Review:create")) }}?这似乎不对。你的createAction有路线吗?使用命令行php bin/console debug:router显示您的路线。 -
@AlvinBunk 路由是create_review,路径是/bookreview
-
您能否注释掉 Twig 文件中的
render(controller...部分,然后浏览到http://localhost/bookreview并查看您的表单是否正确显示且没有错误。将 localhost 替换为您的主机名等...