在唯一模板中呈现的Symfony多个控制器操作 - 已达到最大嵌套级别

symfony multiple controller actions rendered in unique template - maximum nesting level reached

本文关键字:操作 嵌套 控制器 唯一 Symfony      更新时间:2023-09-26

我正在使用JavaScript选项卡来呈现对应于具有不同形式的不同视图的不同布局。

我有一条主要路线如下:

/**
 * @Route("/my_ingredients", name="my_ingredients")
 * @Method("GET")
 * @Template("MarketPlace/UserIngredient/my_ingredients.html.twig")
 */
public function myIngredientsAction()
{
    return array();
}

在myingredients布局中,我有以下内容:

        {% if ingredient_form is defined %}
            {% include 'MarketPlace/Product/create_ingredient.html.twig' %}
        {% else %}
            {{ render(controller('AppBundle:MarketPlace/Product:createIngredient')) }}
        {% endif %}

在创建成分操作中,我有:

/**
 * @Route("/create_ingredient", name="create_ingredient")
 * @Method({"POST", "GET"})
 * @Template("MarketPlace/Product/create_ingredient.html.twig")
 * @param Request $request
 * @return array|'Symfony'Component'HttpFoundation'RedirectResponse
 */
public function createIngredientAction(Request $request)
{
    $productManager = $this->get('product_manager');
    $ingredient = new Product();
    $ingredientForm = $productManager->getIngredientCreateForm($ingredient);
    $formManager = $this->get('form_manager');
    if ($request->getMethod()=='POST')
    {
        if ($formManager->handleRequestAndValidatePersist($ingredientForm,$ingredient))
        {
            $productManager->saveUserIngredientOnCreateIngredient($ingredient);
            return $this->redirect($this->generateUrl('my_ingredients')."#choose");
        }
    }
    return $this->render(
        "MarketPlace/Product/create_ingredient.html.twig",
        array(
            'ingredient_form' => $ingredientForm->createView()
        )
    );
}

最后在create_ingredient布局中,我只有:

{{ form(ingredient_form) }}
{{ form_stylesheet(ingredient_form) }}
{{ form_javascript(ingredient_form) }}

为什么这会生成无限循环?我的印象是我正确地称呼GET->myIngredientsAction->GET=>{{ render(controller('AppBundle:MarketPlace/Product:createIngredient')) }}->GET=>render("MarketPlace/Product/create_ingredient.html.twig")......

任何帮助将不胜感激!

此错误仅在安装 xdebug 时发生,并且常见于默认最大值 100(没有 xdebug,没有上限)。

 xdebug.max_nesting_level = 300

在你的 PHP 中.ini会修复它