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

Я пытаюсь вставить свои данные в базу данных из формы.

Мой URL для создания данных: web.com/siswa/create

Но когда я нажимаю «Отправить», отображается системная ошибка MethodNotAllowedHttpException .

Как я могу это исправить? Что-то не так с моим кодом?

Вот моя форма:

<form action="{{ url('siswa') }}" method="POST">
      <div class="form-group">
         <label for="exampleInputEmail1">NISN</label>
          <input type="text" class="form-control" name="nisn" id="nisn" placeholder="NISN"></div>
         <div class="form-group">
         <label for="exampleInputEmail1">Nama Siswa</label>
         <input type="text" class="form-control" name="nama_siswa" id="nama_siswa" placeholder="Nama Siswa"> </div>
         <button type="submit" class="btn btn-success btn-sm font-weight-bold">Submit</button></form>

Контроллер:

public function tambah()
    {
      return view('siswa.create');
    }

    public function store(Request $request)
      {

        $siswa = new \App\Siswa;
        $siswa->nisn = $request->nisn;
        $siswa->nama_siswa = $request->nama_siswa;
        $siswa->tanggal_lahir = $request->tanggal_lahir;
        $siswa->jenis_kelamin = $request->jenis_kelamin;
        $siswa->save();
        return redirect('siswa');
      }

Маршрут:

Route::get('/siswa/create', [
    'uses' => 'SiswaController@tambah',
    'as' => 'tambah_siswa'
]);

Route::get('/siswa', [
    'uses' => 'SiswaController@store',
    'as' => 'simpan_siswa'
]);

Ответы [ 5 ]

0 голосов
/ 12 ноября 2018

Вы используете метод POST в своей форме и используете GET в маршруте.

попробуйте это

Route::post( '/siswa', [
    'uses' => 'SiswaController@store',
    'as'   => 'simpan_siswa'
] );
0 голосов
/ 12 ноября 2018

В вашей форме вы указали метод POST, но у вашего маршрутизатора нет обработчика POST. Поэтому все, что вам нужно сделать, это когда вы пытаетесь сохранить данные из формы в БД, вы должны опубликовать данные, и маршрутизатор должен их обработать.

Попробуйте это

Route::post('/siswa', [
'uses' => 'SiswaController@store',
'as' => 'simpan_siswa'
]);
0 голосов
/ 12 ноября 2018

В маршруте, пожалуйста, используйте post вместо get

Route::post('/siswa','SiswaController@store');

и также включают {{ csrf_field() }} в форме

0 голосов
/ 12 ноября 2018

вы используете method="POST" в своей форме, но в своем маршруте вы используете Route::get

Используйте Route::post для вашего маршрута

0 голосов
/ 12 ноября 2018

изменить маршрут функции store с get на post

Route::post('/siswa', [
'uses' => 'SiswaController@store',
'as' => 'simpan_siswa'
]);

Используйте поле защиты Csrf в вашей форме для ошибки тайм-аута сеанса

{{ csrf_field() }}

OR

<input type="hidden" name="_token" id="csrf-token" value="{{ Session::token() }}" />

ИЛИ, если вы используете Form Builder

{!! Form::token() !!}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...