我有一個小問題,我是 symfony 的新手,我創建了一個控制器和一個選單模板,我想將它們集成到我的 base.html.twig 中。
我絕對需要呼叫控制器,因為我正在測驗以了解會話變數是否為空。
{% block menu %}
{% include 'menu/index.html.twig' %}
{% endblock %}
<body>
{% block body %}{% endblock %}
</body>
所以我嘗試了這個(它作業得很好,但它沒有呼叫我的控制器,所以當我在會話中進行測驗時它不會作業......)
我搜索了但我不能包含控制器而不是模板...
提前致謝
uj5u.com熱心網友回復:
不應從樹枝呼叫控制器。EOT
您需要將代碼從控制器移動到服務或助手。然后你應該從控制器運行服務。
此外,您需要創建一個新的 twig 函式并在此函式中呼叫服務/幫助程式代碼。
這樣,代碼表單控制器將以正確的方式在 twig 中執行。
uj5u.com熱心網友回復:
在 Symfony 中,您不能從 twig 內部呼叫 Controller,您可以將變數存盤在 Controller 中,然后從 twig 內部呼叫這些變數。
例如,在您的情況下,在控制器中創建變數并將其保存在會話中,如下所示:
//...
class BaseController extends AbstractController
{
//...
$session->set('var_i_need', 222);
return $this->render('menu/index.html.twig', [
'controller_name' => 'BaseController',
]);
}
然后在樹枝里面你得到變數:
{% set var_i_need = app.session.get('var_i_need') %}
并測驗它是否為空:
{% if var_i_need is not NULL %}
{% ... %}
{% endif %}
轉載請註明出處,本文鏈接:https://www.uj5u.com/qukuanlian/421231.html
標籤:
下一篇:CSS中的懸停問題
