У меня есть php-фрагмент в Symfony2, где я говорю: Если пользователь существует -> вернуть эти наборы данных в массив к шаблону else -> return name => 'user not found'. Ниже приведен единственный способ, которым это может работать, если я использую в своей ветке только переменную «first_name».Как TWIG выполняется, если условия?
Устранение неполадок Объяснение: Если пользователь не существует в базе данных, я не могу позвонить user.name, user.username, user.password. Даже если условие if не выполняется, веточка все еще пытается оценить это внутреннее утверждение.
То, что я хочу сказать:
if (user) {
{{ user.name }}<br>
{{ user.username }}<br>
{{ user.password }} <br>
}
else {
User not found
}
Однако, если пользователь не найден, он все равно будет пытаться выполнить доступ БД из переменной пользователя ... user.name .. и т.д. . Как я могу это исправить?
PHP Отрывок
/**
* @Route("/login/{username2}/{password2}")
* @Template()
*/
public function indexAction($username2, $password2)
{
$em = $this->getDoctrine()->getEntityManager();
$respository = $em->getRepository("SchachteUserBundle:user");
$username = $username2;
$password = $password2;
$user = $respository->findOneBy(array("username"=>$username, "password"=>$password));
if ($user) {
return array('exists'=>true, 'first_name' => $user->getName(), 'username' => $user->getUserName(), 'password'=>$user->getPassword());
}
return array('exists'=>false, 'first_name' => 'USER NOT FOUND', 'username' => 'USER NOT FOUND', 'password'=>'USER NOT FOUND');
}
}
TWIG
{% if exists == true %}
Hello {{ first_name }}!
{% else %}
Sorry, that user does not exist!
{% endif %}
Ваш вопрос непонятен, может добавить несколько подробностей, специфичных для вашей проблемы? –
обновлено описание проблемы – rern
Попробуйте сделать var_dump ($ user); die; 'прямо перед тем, как вы выполните' if ($ user) {'в контроллере. Вы можете видеть, какое значение у него есть. Скорее всего, это объект. – MiltoxBeyond