エンティティをTwigファイルに渡すとき、そのエンティティをコントローラーに戻し、データベースを永続化する前に再レンダリングしたいと思います。エンティティは、元々コントローラから渡された変数です。
小枝:
<a href='{{ path('groupitem_new',{'entity' : entity}) }}'>Link Name</a>
これは動作しません。エンティティは渡されません。
symfonyルートを介してエンティティを渡すにはどうすればよいですか?
それはいけません。
path
twigのurl
関数は、コントローラーのアクションを呼び出さずにURLを生成するためのものです。
代わりに、次のように{%render%}タグを使用してコントローラーを小枝に埋め込む必要があります。
{# app/Resources/views/base.html.twig #}
{% render url('some_route', { 'entity': entity }) %}
url
レンダータグの関数は、UR1を生成するために使用する関数とは多少異なることに注意してくださいurl
。これは、コントローラーのアクションを呼び出すために使用され、セキュリティ修正のために2.0.20/2.1.5バージョンからsymfonyに導入されました。古い構文は次のようなものでした:
{# app/Resources/views/base.html.twig #}
{% render 'AcmeBlogBundle:Blog:show' with { 'entity': entity } %}
'AcmeBlogBundle:Blog:show'が呼び出されlogical controller name
ます。
また、少なくともコントローラーのアクションで空の応答を返す必要があることも覚えておいてください。
// src/Acme/BlogBundle/Controller/BlogController.php
.
public function showAction(){
.
.
.
return new Response();
}
.
use Symfony\Component\HttpFoundation\Response;
また、コントローラーファイルの先頭に追加します。