【发布时间】:2014-12-15 10:00:01
【问题描述】:
我偶然发现了 symfony 2.6 中有关当前用户的一些奇怪行为。我正在使用 Doctrine 和 mysql 数据库。现在考虑这个例子:
class StartController extends Controller {
public function welcomeAction() {
if ($this->getUser()) {
$this->getUser()->setLastLogin(new \DateTime());
$this->get('doctrine')->getManager()->flush();
... some more code ...
没有执行更新语句。所以我像这样修改了我的控制器:
class StartController extends Controller {
public function welcomeAction() {
if ($this->getUser()) {
$managedUserEntity = $this->get('doctrine')
->getRepository('MyBundle:User')
->find($this->getUser()->getUuid());
$managedUserEntity->setLastLogin(new \DateTime());
$this->get('doctrine')->getManager()->flush();
... some more code ...
什么都没有。我可以加载、修改和更新所有其他实体,但不能加载用户。我很确定,这至少在 symfony 2.5 中有效,但显然不再有效。或者,也许我做了一些糟糕的配置设置。
【问题讨论】:
-
该用户是否已登录?
-
是的,就是当前登录用户。
-
试试
var_dump($this->getUser())或/和var_dump($this->get('doctrine')->getRepository('MyBundle:User')->find($this->getUser()->getId())) -
这将如何帮助我修改数据库中的实体?
-
你能打印你的用户模型吗?
标签: symfony