Laravel Вставка данных в базу данных

Я все еще новичок в Laravel, поэтому я пытаюсь узнать его с определенного веб-сайта и попробовать вставить данные в базу данных MySQL, используя форму.

это код вида

<!DOCTYPE html>
<html lang="en">
 <head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <meta http-equiv="X-UA-Compatible" content="ie=edge">
    <title>Document</title>
 </head>
 <body>
    <h1>Form Tambah Data</h1>
    <form action="/home/simpan" method="post">
       {{ csrf_field() }}
       Nama <input type="text" name="nama" required="required"><br/>
       Umur <input type="number" name="umur" required="required"><br/>
       Kota <input type="text" name="kota" required="required"><br/>
       <input type="submit" value="Simpan Data">
    </form>
 </body>
</html>

а затем это код web.php

Route::get('/', function () {
  return view('welcome');
});

Route::get('/home', 'HomeController@index');

Route::get('/profil', function (){
   return view('profil');
});

Route::get('/home/tambah','HomeController@tambahData');

Route::post('/home/simpan','HomeController@simpan');

И этот код контроллера

namespace AppHttpControllers;

use IlluminateHttpRequest;
use IlluminateSupportFacadesDB;

class HomeController extends Controller
{
   //
   public function index(){
      //mengambil data dari tabel siswa
      $mahasiswa = DB::table('mahasiswa')->get();
      //mengirim data ke view mahasiswa
      return view('mahasiswa', ['mahasiswa' => $mahasiswa]);
   }

   public function tambahData(){
      return view('form_data');
   }

   public function simpan(Request $request){
       DB::table('mahasiswa')->insert([
          'nama' => $request->nama,
          'umur' => $request->umur,
          'kota' => $request->kota
       ]);
       return redirect('/home');
   }
}

Таблица в базе данных имеет 4 столбца: «id_mahasiswa, nama, umur, kota», и я пытаюсь вставить данные только в 3 столбца. Но тогда, это всегда показывает эту ошибку.

«Поле id_mahasiswa не имеет значения по умолчанию»

Может кто-нибудь сказать мне решение для этого?

Всего 2 ответа


Я рассмотрел ваш код. Например, в вашем phpmyadmin измените значение по умолчанию для столбца id_mahasiswa на null :)


Возможно, что столбец вашей базы данных "id_mahasiswa" в вашей таблице "mahasiswa" имеет ограничение NOT NULL и не имеет значения по умолчанию, поэтому при попытке вставить запись без значения для "id_mahasiswa" ваш запрос не выполняется.

Если вышеприведенное верно, вам нужно либо указать значение для поля, либо изменить дизайн таблицы, с которой вы работаете.


Есть идеи?

10000