2016-12-29 56 views
1

我想我的模板内呈现一个控制器,让控制器使我有:在页面中绘制控制

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")) }} 

不过,我得到这个错误:

一个例外模板的渲染过程中被抛出(“捕致命错误:类Proxies__CG的对象__ \书\ BookBundle \实体\书不能被转换成字符串”)

有谁知道我做错了什么?

+0

是否有潜在的拼写错误somehwere?我在错误信息中看到:'\ Reviewr \ BookBundle \ Entity \ Book'注意'Reviewr'的拼写。 –

+0

@AlvinBunk对不起,我更新了问题 – KTOV

+0

你的意思是你有:'{{render(controller(“BookReviewsBundle:Review:create”))}}'在你的Twig文件中?这看起来不正确。你的'createAction'是否有路线?使用命令行'php bin/console debug:router'来显示你的路由。 –

回答

0

更改您这样的代码:

$form = $this->createForm(ReviewType::class, $review); 

我不认为你可以传递第三个参数。你可以试试这个 - 不知道它是否会工作。

+0

不起作用,你可以通过第三个参数 – KTOV

+0

你也清除了缓存:'php bin/console cache:clear -e nv = prod' –

+0

仍然是一样的错误 – KTOV