如何解决向数据库写入数据的问题?

问题描述

我创建了一个页面,您可以在其中向数据库添加记录,但在添加记录时出现错误:

SQLSTATE[HY000]:一般错误:1364 字段“网站”没有默认值(SQL:插入到 business (name,mail,{{1} },updated_at) 值 (Motor,motor@mail.com,2021-02-02 07:47:26,2021-02-02 07:47:26))

附上下面的截图。

我的数据库 business_table.php

created_at

我的控制器:BusinessController.php

<?php

    use Illuminate\Database\Migrations\Migration;
    use Illuminate\Database\Schema\Blueprint;
    use Illuminate\Support\Facades\Schema;

    class BusinessTable extends Migration
    {
    /**
    * Выполнение миграций.
    *
    * @return void
    */
    public function up()
    {
    Schema::create('business',function (Blueprint $table) {
    $table->increments('id');
    $table->string('name');
    $table->string('mail');
    $table->string('website')->nullable();
    $table->timestamps();
    });
    }

    /**
    * Отмена миграций.
    *
    * @return void
    */
    public function down()
    {
    Schema::drop('business');
    }
    }

我的模型:Business.php

<?php

    namespace App\Http\Controllers;
    use \App\Models\Business;
    use Illuminate\Http\Request;

    class BusinessController extends Controller
    {
    public function index()
    {
    $business = \App\Models\Business::all();
    return view('business',compact('business'));
    }
    public function createbusiness()
    {
    return view('/createbusiness');
    }
    public function create()
    {
    return view('business.create');
    }
    public  function store()
    {
    $business = new Business();
    $business->name = request()->input('name');
    $business->mail = request()->input('mail');
    $business->save();
    return redirect('/business');

    }
    }

我的 createbusiness.blade.php(查看页面以向数据库添加新条目)

<?php

namespace App\Models;

use Illuminate\Database\Eloquent\Factories\HasFactory;
use Illuminate\Database\Eloquent\Model;

class Business extends Model
{
/**
* The table associated with the model.
*
* @var string
*/
protected $table = 'business';
}

error screenshot

解决方法

如果您的“网站”字段不是必填项,请修改:

$table->string('website');

作者:

$table->string('website')->nullable();
,

您没有在商店方法中为列网站插入值 您的代码 -:

public  function store()
    {
    $business = new Business();
    $business->name = request()->input('name');
    $business->mail = request()->input('mail');
    $business->save();
    return redirect('/business');    
    }

这样做:

public  function store()
    {
    $business = new Business();
    $business->name = request('name');
    $business->mail = request('mail');
    $business->website = request('website');
    $business->save();
    return redirect('/business');

    }

如果您的“网站”字段不是必填字段,请将其设为可空

相关问答

错误1:Request method ‘DELETE‘ not supported 错误还原:...
错误1:启动docker镜像时报错:Error response from daemon:...
错误1:private field ‘xxx‘ is never assigned 按Alt...
报错如下,通过源不能下载,最后警告pip需升级版本 Requirem...