如何将数据从laravel控制器发送到vuejs

时间:2019-11-28 15:12:43

标签: javascript laravel vuejs2

如何从Laravel Controller向vue发送数据?我已经设置好我认为它可能会起作用的方式,但是没有数据正在发送。我做错了什么? 控制器(在单独的API文件夹中设置):

public function index()
    {
        return User::all();
    }

从api.php路由:

Route::apiResources([
    'user' => 'API\UsersController'
]);

组件代码:

<template>
    <div>
        <v-toolbar flat color="white">
            <v-toolbar-title>Users</v-toolbar-title>
        </v-toolbar>
        <ol v-for="user in users">
            <li>Name: {{ user.name }}</li>
        </ol>
        <v-data-table
            :headers="headers"
            :items="users"
            :items-per-page="5"
            class="elevation-1"
            flat
        >
        </v-data-table>
    </div>
</template>

<script>
    import {AxiosInstance as axios} from "axios";

    export default {
        data () {
            return {
                headers: [
                    {
                        text: 'Username',
                        align: 'left',
                        value: 'username',
                    },
                    { text: 'Name', value: 'name' },
                    { text: 'Surname', value: 'surname' },
                    { text: 'Email', value: 'email' },

                ],
                users: [],
            }
        },
        methods: {
            loadUsers(){
                axios.get('./api/user').then(response => this.users = response.data);
            }
        },
        mounted() {
            this.loadUsers();
        }
    }
</script>

我只是在此处放置了一个简单的列表来测试该数组,但结果只是空白。

1 个答案:

答案 0 :(得分:1)

替换此

 axios.get('./api/user').then(response => this.users = response.data);

与此

  axios.get("api/user").then(({data}) => (this.users = data));