如何解决向数据库写入数据的问题?
How to solve the problem of writing data to the database?
我创建了一个页面,您可以在其中向数据库中添加记录,但在添加记录时出现错误:
SQLSTATE[HY000]:一般错误:1364 字段 'website' 没有默认值(SQL:插入 business
(name
、mail
、updated_at
、created_at
) 值(电机、电机@mail.com、2021-02-02 07:47:26、2021-02-02 07:47:26))
下面附上截图。
我的数据库business_table.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');
}
}
我的控制器:BusinessController.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');
}
}
我的模特:Business.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';
}
我的createbusiness.blade.php(查看页面添加新条目到数据库)
@extends('layouts.layout')
@section('title')Новий бізнес@endsection
@section ('main_content')
<div class="row py-lg-5 ">
<div class="col-lg-6 col-md-8 mx-auto">
<h1 class="fw-light">Write new data</h1>
<form method="post" action="/business">
{{ csrf_field() }}
<div>
<input type="id" name="id" value="" placeholder="id">
</div>
<div>
<input type="text" name="name" value="" placeholder="name">
</div>
<div>
<textarea type="text" name="mail" value="" placeholder="mail"></textarea>
</div>
<div>
<textarea type="text" name="website" value="" placeholder="website"></textarea>
</div>
<div>
<button type="sumbit">Sumbit</button>
</div>
</form>
</div>
</div>
</section>
</p>
@endsection
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');
}
如果您的“网站”字段不是必填字段,则使其可为空
我创建了一个页面,您可以在其中向数据库中添加记录,但在添加记录时出现错误:
SQLSTATE[HY000]:一般错误:1364 字段 'website' 没有默认值(SQL:插入 business
(name
、mail
、updated_at
、created_at
) 值(电机、电机@mail.com、2021-02-02 07:47:26、2021-02-02 07:47:26))
下面附上截图。
我的数据库business_table.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');
}
}
我的控制器:BusinessController.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');
}
}
我的模特:Business.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';
}
我的createbusiness.blade.php(查看页面添加新条目到数据库)
@extends('layouts.layout')
@section('title')Новий бізнес@endsection
@section ('main_content')
<div class="row py-lg-5 ">
<div class="col-lg-6 col-md-8 mx-auto">
<h1 class="fw-light">Write new data</h1>
<form method="post" action="/business">
{{ csrf_field() }}
<div>
<input type="id" name="id" value="" placeholder="id">
</div>
<div>
<input type="text" name="name" value="" placeholder="name">
</div>
<div>
<textarea type="text" name="mail" value="" placeholder="mail"></textarea>
</div>
<div>
<textarea type="text" name="website" value="" placeholder="website"></textarea>
</div>
<div>
<button type="sumbit">Sumbit</button>
</div>
</form>
</div>
</div>
</section>
</p>
@endsection
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');
}
如果您的“网站”字段不是必填字段,则使其可为空