Axios | VueJS | Laravel |发布请求无法访问对象

时间:2018-10-29 21:20:06

标签: json vue.js vuejs2 axios laravel-5.7

因此,我试图将帖子数据发送到控制器,然后通过一个对象进行访问。它肯定会传递数据,但由于某种原因,我不允许我访问该对象中的任何项目,而该项目确实很奇怪。

这是我在vue组件中的发帖请求。

        axios.post('/users', {user: this.user})
        .then(response => {
            console.log(response)
        })
        .catch(error => {
            console.log(error.response)
        });

这是我控制器中的内容,正如我所说的,我确实获得了用户信息,但是我无法访问它,例如执行$ user-> id,但是当我只执行$ user时,我可以看到包括ID。

    //Here we get all the users info from the Axios Vue.
    $user = $request->get('user');

    return response()->json([
        'status' => 'success',
        'msg'    => $user->id,
    ], 201);

我得到的错误是php错误,因为我可以在网络响应区域下找到它,这就是错误消息的意思。

"message": "Trying to get property 'id' of non-object"

但是当我只是在控制器中这样做时。

    //Here we get all the users info from the Axios Vue.
    $user = $request->get('user');

    return response()->json([
        'status' => 'success',
        'msg'    => $user,
    ], 201);

它返回201,并在味精中显示。

{"id":1,"email":"test@test.com","full_name":"John Doe","first_name":"John","last_name":"Doe","is_active":1,"overide_login":1,"skill_id":5,"phone":null,"shifts_id":0,"bilingual":0,"full_time":0}

我格式化对象的格式错误还是什么?...如果有人可以提供帮助,那将是很好的选择,因为我真的不明白为什么这样做不起作用。

还请注意,所有内容均与VueJS / AXIOS和LARAVEL的最新版本有关。

1 个答案:

答案 0 :(得分:1)

您必须先对其进行解码,请将其添加到您的控制器中。

$input = ($request->all() == null ? json_decode($request->getContent(), true) : $request->all());

echo $input['user']['id']

希望这对您有用。