首页 > 解决方案 > 如何使用 vue 和 laravel 将数据插入数据库

问题描述

我尝试使用 vue js 和 laravel 创建一个 crud 系统。

我已经创建了 api 路由等等......

但是当我点击提交时,我收到了消息405 (Method Not Allowed)

这是我的AddArtist.vue文件

<form @submit.prevent="add">
<input type="text" class="form-control" v-model="artist.name"  placeholder="Artist Name">
<button class="btn btn-success" type="submit">Save</button>
</form>

<script>
    export default {
        data: function () {
        return {
            errors: [],
            image: '',
            artist: {
                    name: '',
                }
        }
        },
        methods: {
            add() {
                axios.post('/api/artist/store-artist', this.$data.artist)
                    .then((response) => {
                        alert('Success add Artist')
                        console.log(response)
                    })
            },
        },
            mounted() {
                console.log('Add Artist Mounted.')
            }
    }
</script>

和我的api.php路线

Route::group(['middleware' => 'cors'], function(){
    Route::post('addartist/store-artist', 'ArtistController@store');
});

这里是我的控制器ArtistController.php

public function store(Request $request)
    {
        $input = $request->all();
        dd($input);
    }

最后一个是我的模型Artist.php

class Artist extends Model
{
    protected $table = 'artist';
    protected $fillable = ['artist_name', 'date_birth', 'cover', 'gender'];
}

标签: laravellaravel-5vue.jsroutesvue-router

解决方案


那是拼写错误:

更改 addartist/store-artistartist/store-artist路线中

你的 api 是:

Route::group(['middleware' => 'cors'], function(){
    Route::post('addartist/store-artist', 'ArtistController@store');
});

你正在做:

axios.post('/api/artist/store-artist', this.$data.artist)
                    .then((response) => {
                        alert('Success add Artist')
                        console.log(response)
                    })

推荐阅读