как вставить данные в базу данных с помощью Vue и Laravel - PullRequest
0 голосов
/ 13 декабря 2018

я пытаюсь создать систему crud, используя vue js и laravel.

я уже создаю маршрут 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'];
}

1 Ответ

0 голосов
/ 13 декабря 2018

это ошибка опечатки:

изменить addartist/store-artist на artist/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)
                    })
...