gpt4 book ai didi

symfony - 将参数传递给 Symfony 2.8 中的嵌入式 Controller

转载 作者:行者123 更新时间:2023-12-02 12:14:11 24 4
gpt4 key购买 nike

我正在使用 Symfony 2.8.0(因为我发现 Symfony 3.x 目前还不是很成熟,但我们现在不讨论这个问题)。

根据官方文档(http://symfony.com/doc/2.8/book/templating.html#embedding-controllers)应该可以将参数传递给从 View 内调用的嵌入式 Controller 。

但是,这似乎不起作用。我总是遇到以下异常:

"Controller "AppBundle\Controller\DefaultController::buildNavigationAction()" requires that you provide a value for the "$argument1" argument (because there is no default value or because there is a non optional argument after this one)."

在我看来,我有以下代码:

{{ render(controller('AppBundle:Default:buildNavigation'), {
'argument1': 25,
'argument2': 50
}) }}

Controller 看起来像这样:

public function buildNavigationAction($argument1, $argument2)
{
// ... some logic ...

return $this->render(
'navigation.html.twig', array(
'foo' => $argument1,
'bar' => $argument2
)
);
}

什么给了?这是一个错误吗?

文档中描述的用例(从基本模板内渲染动态内容,并因此在每个页面上渲染动态内容)正是我使用它的目的。在每个 Controller 中重复相同的逻辑显然违反了 DRY 原则。

最佳答案

您的语法不正确,因为您没有将值传递给 Controller ​​,因为您太早关闭了 )。它应该是:

{{ render(controller('AppBundle:Default:buildNavigation', {
'argument1': 25,
'argument2': 50
})) }}

关于symfony - 将参数传递给 Symfony 2.8 中的嵌入式 Controller ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35493335/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com