在从Symfony 2.X更新到Symfony 4.4并验证操作之后,我发现Twig不识别模态。
因为它不识别模态,所以即使在模态中没有显示在模态中的代码时,它也会被显示。
当我尝试"if模态为空“时,会显示if语句中的代码,因此该模式似乎没有被传递。
传递模式的代码随着Symfony更新而改变。这可能会产生影响。
你有什么想法吗?
Old_code
<div id="imageDialog" title="Image management">
{{ render(controller("AppBundle:Shop/Image:manager", {"modal": true})) }}
</div>
Changed_code
<div id="imageDialog" title="Image management">
{{ render(controller("AppBundle\\Controller\\Shop\\ImageController::managerAction", {"modal": true})) }}
</div>
有争议的代码
<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
*
* @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(),
);
}
发布于 2021-04-09 03:18:48
下面的方法运行得很好。我无法得到$routeParams["modal"]
,但请告诉我是否有办法得到它。
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(),
);
}
<div id="imageDialog" title="Image management">
{{ render(controller("AppBundle\\Controller\\Shop\\ImageController::managerAction", {}, {"modal": true})) }}
</div>
发布于 2021-04-09 09:05:18
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(),
);
}
但我想知道,您是否不应该将模态作为一个真正的路径参数,并使用默认值false
。https://symfony.com/doc/4.4/routing.html#optional-parameters
https://stackoverflow.com/questions/66980741
复制相似问题