1
需要一些建議。 我想更新現在看到的文章。 首先,我將EM注入偵聽器。但是,解析url以獲取文章ID爲symfony加載文章不夠漂亮,就像我看來的那樣。Symfony將一些實體注入偵聽器
services:
app.articles.action_listener:
class: FrontendBundle\EventListener\ArticleListener
tags:
- { name: kernel.event_listener, event: kernel.controller, method: onKernelController }
arguments: ['@doctrine.orm.entity_manager']
是否有任何選項可以讓如控制器中發生的實體一樣?
/**
* @Route("/{id}", requirements={"page": "\d+"}, name="article_view_full")
*
* @param Article $article
*
* @return \Symfony\Component\HttpFoundation\RedirectResponse|\Symfony\Component\HttpFoundation\Response
*/
public function viewAction(Article $article)
UPDATE
/**
* Class ArticleListener
* @package FrontendBundle\EventListener
*/
class ArticleListener
{
/**
* @type EntityManager
*/
private $manager;
/**
* ArticleListener constructor.
*
* @param EntityManager $manager
*/
public function __construct(EntityManager $manager)
{
$this->manager = $manager;
}
/**
* @param $event
*/
public function onKernelController($event)
{
$controller = $event->getController();
if (!is_array($controller)) {
return;
}
if ($controller[0] instanceof ArticlesController && $controller[1] == 'viewAction') {
// THIS IS THE FULL ARTICLE VIEW. HERE I NEED TO GET CURRENT ARTICLE INSTANCE AND UPDATE VIEWS COLUMN IN DB.
}
}
}
THX的任何幫助。
我們能否看到您的ArticleListener?你爲什麼不更新你的實體在這個聽衆? –