#php #symfony #notifications #symfony4
#php #symfony #уведомления #symfony4
Вопрос:
Мне трудно добавлять уведомления в symfony
Я использую этот пакет https://github.com/maximilienGilet/notification-bundle
Я следил за документом, но столкнулся с трудностями
Это то, что я добавил в контроллер (добавить уведомление)
$manager = $this->get('mgilet.notification');
$notif = $manager->createNotification('Nouveau candidat !');
$notif->setMessage('X a entré un candidat');
$notif->setLink('http://symfony.com/');
$manager->addNotification(array($this->getUser()), $notif, true);
return $this->redirectToRoute('index');
И это то, что я добавил в twig
{{ mgilet_notification_render(app.user) }}
Но после добавления annonce я вижу эту ошибку
Служба «mgilet.notification» не найдена: несмотря на то, что она существует в контейнере приложения, контейнер внутри «App Controller TestController» представляет собой меньший локатор служб, который знает только о «doctrine», «form.factory», «http_kernel», «parameter_bag», «request_stack», «маршрутизатор», «security.authorization_checker», «security.csrf.token_manager», «security.token_storage», «сериализатор», «сеанс», «шаблоны» и «веточка» сервисы. Попробуйте вместо этого использовать внедрение зависимостей.
Комментарии:
1. Версия Symfony?
2. я использую symfony 4
Ответ №1:
В функции контроллера попробуйте вместо этого использовать внедрение зависимостей следующим образом:
public function controllerFunction(MgiletNotificationBundleManagerNotificationManager $manager)
{
$notif = $manager->createNotification('Nouveau candidat !');
$notif->setMessage('X a entré un candidat');
$notif->setLink('http://symfony.com/');
$manager->addNotification(array($this->getUser()), $notif, true);
return $this->redirectToRoute('index');
}
Комментарии:
1. Спасибо за ваш ответ, ошибка исчезла, но я не вижу уведомлений с помощью twig, также $notif не добавляется в уведомление таблицы в базе данных