Php Laravel向数据库插入数据

Php Laravel向数据库插入数据,php,mysql,database,laravel,xampp,Php,Mysql,Database,Laravel,Xampp,我对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-e

我对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>
这是控制器代码
namespace App\Http\Controllers;

use Illuminate\Http\Request;
use Illuminate\Support\Facades\DB;

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'没有默认值”


有人能告诉我这个问题的解决方案吗?

您的“mahasiswa”表中的数据库列“id_mahasiswa”可能有一个NOT NULL约束,并且没有默认值,因此当您试图插入没有“id_mahasiswa”值的记录时,您的查询失败


如果上述情况属实,则需要为该字段提供一个值或更改正在使用的表的设计。

我查看了您的代码。在phpmyadmin中,将“id_mahasiswa”列的默认值更改为null,例如:)

字段“id_mahasiswa”没有默认值。您可以做三件事,或者将字段id_mahasiswa设置为null,或者在insertyes中指定默认值或指定值。我尝试检查null,结果正常。非常感谢你
namespace App\Http\Controllers;

use Illuminate\Http\Request;
use Illuminate\Support\Facades\DB;

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');
   }
}