API返回空数组,而不是Laravel Vue中的数据

时间:2020-01-05 21:30:42

标签: php laravel vue.js

我正在为学校做Laravel Vue项目,我应该通过从客户端发送电子邮件来吸引用户,但是当服务器响应时,我会从响应数据中得到一个空数组,而不是我想要的数据。数据库。

Login.vue

login() {

        this.showMessage = true;
        this.typeofmsg = "alert";
        this.message = "Loggin in...";

        axios.post('api/login', this.user)
            .then(response => {
                const token = response.data.access_token;
                this.$store.commit('setAccessToken', token);
                return axios.get('api/users/me', this.user.email);
            })
            .then(response => {
                console.log(response);
            })
            .catch(error => {
                console.log("Error = " + error.message);
            });

    },

routes / api.js

Route::get('users/me', 'UserControllerAPI@myProfile');

UserControllerAPI

public function myProfile(Request $request){
    $email = $request->email;
    $user = User::where('email', $email)->first();
    return new UserResource($user);
}

如果我尝试通过邮递员获得它,它将起作用 enter image description here

在开发工具控制台中,我得到了

enter image description here

对不起,如果我不清楚或做错了什么,我从昨天开始一直在尝试解决此问题,这使我发疯。任何帮助表示赞赏

编辑:路线错误,但是我更改了路线,但得到的内容相同,没有数据。我也更改了控制台图片

2 个答案:

答案 0 :(得分:2)

更改此行:

return axios.get('api/users/me', this.user.email);

return axios.get('api/users/me', { params: { email: this.user.email } });

答案 1 :(得分:0)

您拥有api / user / me,在路由中您拥有/ userS / me

所以我想您必须删除S或在其中一个位置添加S。

所以尝试更改路线

Route::get('users/me', 'UserControllerAPI@myProfile');

Route::get('/user/me', 'UserControllerAPI@myProfile');