Я работаю с Symfony 2.8 и пытаюсь сделать:
Если пользователь подключается в первый раз, появляется всплывающее окно. У меня есть поле "last_login", так что я сделал, чтобы увидеть, если "last_login" является нулевым и отобразить всплывающее окно. Но проблема в том, что мое vue генерируется после того, как last_login установлен, поэтому он не работает. Тогда я попытался создать слушателя:
class firstLoginModalListener
{
public function preUpdate(PreUpdateEventArgs $eventArgs)
{
if ($eventArgs->getEntity() instanceof User) {
if ($eventArgs->hasChangedField('lastLogin')) {
if($eventArgs->getOldValue('lastLogin')==null){
//do something here
};
}
}
}
}
Но даже прежде чем пытаться это сделать, я должен знать, как отправить информацию на мою веточку, поэтому я попробовал это (просто для проверки связи между веткой и слушателем):
class firstLoginModalListener
{
public function preUpdate(PreUpdateEventArgs $eventArgs)
{
if ($eventArgs->getEntity() instanceof User) {
$session = new Session();
$session->start();
$session->set('name','test');
$session->getFlashBag()->add('notice', 'Profile updated');
}
}
}
и попробовал несколько вещей в моей веточке:
<script type="text/javascript">
$(document).ready(function () {
{% for flashMessage in app.session.flashbag.get('notice') %}
console.log('{{ flashMessage }}')
{% endfor %}
alert('ok')
})
</script>
и:
<script type="text/javascript">
$(document).ready(function () {
console.log('{{ app.session.get('name') }}')
})
</script>
Но оба дали мне пустой результат (я почти уверен, что пользователь обновился)