2016-08-17 3 views
1

Это, наверное, смешной вопрос, но я знаю, что Symfony теперь всего лишь несколько месяцев, и я никогда не настраивал сеанс. Я понимаю, что происходит в documentation, но где я создаю новый сеанс? Я делаю это внутри моего editAction?Как установить сеанс symfony

Поскольку у меня есть editAction, и как только кто-то редактирует, электронное письмо отправляется супервизору, но как я могу ограничить его одним электронным письмом на редактирование заказа за сеанс?

Должен ли я просто добавить что-то подобное внутри моего editAction?

$session = new Session(); 
$session->start(); 

// set and get session attributes 
$session->set('order', '...'); 
$session->set('supervisorEmail', '...'); 
$session->set('time', '...'); 

Может ли кто-нибудь помочь мне с полным образцом или вести меня? Я очень по достоинству оценю это. Спасибо.

+0

Существует сеанс обслуживания, что Вы можете вводить туда, куда вы хотите , – mmmm

ответ

4

сеанс автоматически запускается ядром, поэтому вам не нужно запускать его вручную. В контроллере, вы можете получить по запросу:

use Symfony\Component\HttpFoundation\Request;  

public function editAction(Request $request) 
{ 
    $session = $request->getSession(); 
    $session->set('order', '...'); 
    $session->set('supervisorEmail', '...'); 
    $session->set('time', '...'); 
} 

Вы можете также проверить, если сеанс уже имеет свойство, как это:

if (false === $session->has('order') { 
    $session->set('order', '...'); 
} 
+0

Спасибо! Настройка переменной сеанса уже начинает иметь смысл, теперь, как проверить, отправлено ли сообщение по электронной почте, чтобы предотвратить больше, если тот же самый объект был снова отредактирован в том же сеансе? –

+0

при отправке электронной почты в первый раз, зарегистрируйте переменную сеанса. и после издания, проверьте, зарегистрирована ли эта переменная или нет с '$ session-> has()' перед отправкой нового сообщения электронной почты. – VaN

+0

Хорошо, спасибо, попробуй разобраться. –

Смежные вопросы