首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >Symfony4:呈现不能传递参数

Symfony4:呈现不能传递参数
EN

Stack Overflow用户
提问于 2021-04-07 06:36:59
回答 2查看 130关注 0票数 0

在从Symfony 2.X更新到Symfony 4.4并验证操作之后,我发现Twig不识别模态。

因为它不识别模态,所以即使在模态中没有显示在模态中的代码时,它也会被显示。

当我尝试"if模态为空“时,会显示if语句中的代码,因此该模式似乎没有被传递。

传递模式的代码随着Symfony更新而改变。这可能会产生影响。

你有什么想法吗?

Old_code

代码语言:javascript
运行
复制
    <div id="imageDialog" title="Image management">
        {{ render(controller("AppBundle:Shop/Image:manager", {"modal": true})) }}
    </div>

Changed_code

代码语言:javascript
运行
复制
    <div id="imageDialog" title="Image management">
        {{ render(controller("AppBundle\\Controller\\Shop\\ImageController::managerAction", {"modal": true})) }}
    </div>

有争议的代码

代码语言:javascript
运行
复制
    <div class="tabpanel selected" id="imageFolder" >
        <div class="tabcontent">
            <div class="operations">
                {% if not modal %}
                    <div class="pull-right">
                        <form method="post" action="{{ path('app_shop_image_delete') }}">
                            <input type="hidden" name="methods" value="delete">
                            <input type="hidden" name="_csrf_token" value="{{ csrf_token("authenticate") }}">
                            <input type="hidden" name="ids" value="[]">
                            <button type="submit" class="delete btn btn-danger"><i class="icon-trash"></i> Delete</button>
                        </form>
                    </div>
                {% endif %}
            </div>
        </div>
    </div>

ImageController

代码语言:javascript
运行
复制
     *
     * @Method("GET")
     * @Route("/manager")
     *
     * @Template("@AppBundle/Shop/Image/manager.html.twig")
     */
    public function managerAction(Request $request)
    {
        $routeParams = $request->get('_route_params');
        $uploadUrl = $this->generateUrl("app_shop_image_save");
        return array(
            'modal' => isset($routeParams["modal"]) ? $routeParams["modal"] : false,
            'form'  => $this->createUploadForm($uploadUrl)->createView(),
        );
    }
EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2021-04-09 03:18:48

下面的方法运行得很好。我无法得到$routeParams["modal"],但请告诉我是否有办法得到它。

代码语言:javascript
运行
复制
    public function managerAction(Request $request)
    {
        $routeParams = $request->query->get('modal');
        $uploadUrl = $this->generateUrl("app_hq_image_save");
        return array(
            'modal' => isset($routeParams) ? $routeParams : false,
            'form'  => $this->createUploadForm($uploadUrl)->createView(),
        );
    }
代码语言:javascript
运行
复制
     <div id="imageDialog" title="Image management">
         {{ render(controller("AppBundle\\Controller\\Shop\\ImageController::managerAction", {}, {"modal": true})) }}
     </div>
票数 0
EN

Stack Overflow用户

发布于 2021-04-09 09:05:18

代码语言:javascript
运行
复制
public function managerAction(Request $request)
{
    $isModal = $request->query->get('modal') != null ? $request->query->get('modal') : false;
    $uploadUrl = $this->generateUrl("app_hq_image_save");
    return array(
        'modal' => $isModal,
        'form'  => $this->createUploadForm($uploadUrl)->createView(),
    );
}

但我想知道,您是否不应该将模态作为一个真正的路径参数,并使用默认值falsehttps://symfony.com/doc/4.4/routing.html#optional-parameters

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/66980741

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档