symfony 3.4 - vuejs,vuejs下的用户数据记录不可用

时间:2018-04-07 02:06:42

标签: fosuserbundle

喜欢标题。我在vuejs下收到记录的用户数据时遇到问题。

我用   - FOS用户 - 登录   - Fos休息 - 到api   - Jms Serializer

这是我从数据库中获取数据的功能

public function getUser() { $userId = $this->container->get('security.token_storage')->getToken()->getUser('id'); return $this->repository->FindOneBy(['id' => $userId]); }

现在,当它处于上面的形式时,console.log在vuejs中返回一个空对象。但是,当我将$ userId更改为5时 - 例如 - $this->repository->FindOneBy(['id' => 5]); 对象可用于数据。

现在。我检查了两种情况下的api地址 - 作品。在这两种情况下我也会返回转储。两种情况下的一切都是相同的。

这是我的日志 当$ userId

127.0.0.1 - - [07/Apr/2018:03:55:24 +0200] "GET /ekopanel2/web/app_dev.php/api/v1/greenker/user HTTP/1.1" 204 380 "http://localhost:8080/greenker" "Mozilla/5.0 (X11; Ubuntu; Linux x86_64; rv:59.0) Gecko/20100101 Firefox/59.0"

这是5

127.0.0.1 - - [07/Apr/2018:03:55:34 +0200] "GET /ekopanel2/web/app_dev.php/api/v1/greenker/user HTTP/1.1" 200 895 "http://localhost:8080/greenker" "Mozilla/5.0 (X11; Ubuntu; Linux x86_64; rv:59.0) Gecko/20100101 Firefox/59.0"

我注意到状态代码不同,当5为200并且正在工作时,当$ userId,状态代码为204时,所以它看起来像是空数据。

你能帮帮忙吗?

1 个答案:

答案 0 :(得分:0)

假设您已登录。

如果没有,$ this-> container-> get(' security.token_storage') - > getToken() - > getUser()将返回字符串" anon。 "

你试过这个:

    $userId = $this->container->get('security.token_storage')->getToken()->getUser()->getId();

小心检查用户是否已登录。否则,它将抛出一个异常,例如"在字符串"上调用成员函数getId()。