簡體   English   中英

EasyAdmin3 / Symfony / Twig - url 生成器,在 ZF35D7929DDF2FE2B7DE8 模板中具有路由名稱和參數

[英]EasyAdmin3 / Symfony / Twig - url generator with route name and params in Twig template

我正在嘗試使用一些參數在我的模板中生成 EasyAdmin3 url,但由於某種原因,它們不存在於 controller 中。

Twig 模板:

<a href="{{ ea_url().setRoute('route_name').set('id', 1) }}">xxx</a>

<a href="{{ ea_url({'routeName': 'route_name', 'id':1}) }}">yyy</a>

Error with missing EA context:
<a href="{{ path('route_name', {'id': 1}) }}">zzz</a>

Controller:

/**
 * @Route("/admin/something/{id}", name="rounte_name")
 */
public function xyz($id = null, Request $request, AdminContext $context)
{
    dd($_GET['id'], $request->request->all(), $context->getRequest()->request->all());
    ...
}

$_GET['id'] 有效,但請求和上下文為空 []。

知道如何使用參數按名稱生成路線嗎?

謝謝

如果您只是在 twig 中生成常規命名路由,我認為您不需要ea_url()助手 function。 您應該能夠使用 Symfony 提供的path() twig 擴展

{{ path(route_name, route_parameters = [], relative = false) }}

如果您嘗試創建指向 EasyAdmin controller 操作的鏈接,則可以使用ea_url()幫助程序,但您還必須指定 controller 和操作。 嘗試類似:

{% set url = ea_url()
                .setController('App\\Controller\\Admin\\FoobarCrudController')
                .setAction('customFooAction')
                .setEntityId(entity.instance.id)
                .set('myParam', 'baz') %}
<a href="{{ url }}">Custom Foobar Action</a>

然后在你的 controller 中,一切都應該像往常一樣通過$context變量提供......

public function customFooAction(AdminContext $context)
{
    $entity = $context->getEntity()->getInstance();
    $myParam = $context->getRequest()->get('myParam');
}

這對我有用,我希望它有幫助。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM