Я знаю, что легко проверить, определена ли переменная, с помощью
{# defined works with variable names #}
{% if foo is defined %}
...
{% endif %}
и установить переменную, если она не определена, используя:
{% set foo = 'bar' %}
Есть ли способ установить переменную как неопределенную? У меня есть переменная, которая передается в html-файл ветки, и она не всегда передается, и я только что столкнулся с ситуацией, когда она может быть нулевой. Если она равна нулю, я хотел бы установить для нее значение undefine, потому что логические операторы в остальной части файла работают правильно, и это мучительная проверка: сначала определяется, а затем обнуляется второй раз каждый раз, когда я использую эту переменную.
Я наткнулся на этот разговор и хотел узнать, есть ли у кого-нибудь еще решение, как отключить переменную или лучший способ установить переменную, которая может быть неопределенной или нулевой.
Обновлено с кодом:
Я работаю над своим внутренним разделом администратора. По разным причинам я не использовал SonataAdmin и хотел создать свой собственный. В этой области я могу просмотреть сводную информацию обо всех пользователях, а на некоторых страницах я могу просматривать и редактировать части профиля пользователя. У меня есть файл ветки заголовка, содержащий ссылки на сводные страницы, а затем еще одна строка, содержащая ссылки на разделы профиля пользователя.
Для моего маршрута admin_profile_show - мне нужно включить пользователю загрузить правильную страницу, но если здесь указано значение пользователя null, это приведет к ошибке, поскольку он не сможет получить доступ к свойству имени пользователя.
{% if user is defined %}
{{ path('admin_profile_show', { 'username': user.username}) }}
...other routes and links
{% endif %}
Думаю, моя реальная проблема заключается в том, что я допустил случай, когда имя пользователя может быть нулевым, поэтому оно определено, но равно нулю. Прежде чем изменить логику других файлов, я хотел знать, существует ли неустановленная переменная, которая работала бы следующим образом:
{% if user is null %}
{% unset user %}
{% endif %}
Подробнее здесь: https://stackoverflow.com/questions/252 ... -undefined