检查每个请求的数据库字段Symfony2
如果用户登录时检查他/她是否已完成数据库中的所有字段(用户字段),我想做什么 我可以检查他们何时登录这些字段,然后重定向到纵断面图,但一旦他们进入纵断面图,他们仍然可以看到菜单,因此他们可以轻松转到其他选项,因为他们已经登录,我无法再以这种方式检查 所以我想也许使用控制器事件监听器我可以检查,所以我检查控制器是否不同于accountController(具有编辑配置文件的视图),如果不同,我可以检查字段 这种方法的问题在于accountController和其他控制器中的细枝{%render…%}再次触发控制器事件并给我无限次调用检查每个请求的数据库字段Symfony2,symfony,Symfony,如果用户登录时检查他/她是否已完成数据库中的所有字段(用户字段),我想做什么 我可以检查他们何时登录这些字段,然后重定向到纵断面图,但一旦他们进入纵断面图,他们仍然可以看到菜单,因此他们可以轻松转到其他选项,因为他们已经登录,我无法再以这种方式检查 所以我想也许使用控制器事件监听器我可以检查,所以我检查控制器是否不同于accountController(具有编辑配置文件的视图),如果不同,我可以检查字段 这种方法的问题在于accountController和其他控制器中的细枝{%render…%
什么方法更好?感谢您使用控制器事件(
kernel.controller
)检查字段的想法是正确的。在事件处理程序中,只需检查请求是否为主请求
use Symfony\Component\HttpKernel\HttpKernel;
class FieldUpdater
{
/**
* Updates user's fields
*
* @param \Symfony\Component\HttpKernel\Event\FilterControllerEvent $event
*
* @return void
*/
public function onCoreController(FilterControllerEvent $event)
{
//if this isn't the main http request, then we aren't interested...
if (HttpKernel::MASTER_REQUEST !== $event->getRequestType()) {
return;
}
// update fields
}
}
这样你就不会在每次调用
{%render…%}
谢谢,你的想法帮了我一把,再加上一些额外的代码就行了