Laravel 将数据插入数据库

Posted

技术标签:

【中文标题】Laravel 将数据插入数据库【英文标题】:Laravel Inserting Data to Database 【发布时间】:2020-07-05 04:19:40 【问题描述】:

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

谁能告诉我解决办法?

【问题讨论】:

字段 'id_mahasiswa' 没有默认值 你可以做三件事,或者让字段 id_mahasiswa 为 NULL,或者给一个默认值或者在插入 【参考方案1】:

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

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

【讨论】:

是的,我尝试检查 null 并且它有效。非常感谢【参考方案2】:

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

【讨论】:

以上是关于Laravel 将数据插入数据库的主要内容,如果未能解决你的问题,请参考以下文章

laravel:雄辩的例子将数据插入数据库

未使用 laravel 8 将数据插入数据库

Laravel将多个数据从表html插入数据库

LARAVEL 5.5 - 使用 Eloquent 模型将数据从 FORM 插入数据库

使用 laravel 5.4 将数据插入数据库时​​找不到 404 错误文件

Laravel 插入默认值而不是通过请求发送的数据