【发布时间】:2018-12-04 09:44:51
【问题描述】:
我遇到了一个不起作用的表单。我收到一条错误消息:
SQLSTATE[HY000]:一般错误:1364 字段
firstname没有 默认值(SQL:插入users(role) 值(用户))。
除了它也没有在数据库中插入数据。请帮忙!!
<?php use Illuminate\Support\Facades\Schema; use Illuminate\Database\Schema\Blueprint; use Illuminate\Database\Migrations\Migration;class CreateUsersTable extendsMigration{
/**
* Run the migrations.
*
* @return void
*/
public function up()
{
Schema::create('users', function (Blueprint $table) {
$table->increments('id');
$table->string('firstname');
$table->string('suffix')->nullable();
$table->string('lastname');
$table->integer('phoneNumber');
$table->string('role');
$table->string('streetName');
$table->integer('streetNumber');
$table->string('city');
$table->string('zipcode');
$table->string('email')->unique();
$table->timestamp('email_verified_at')->nullable();
$table->string('password');
$table->rememberToken();
$table->timestamps();
});
}
/**
* Reverse the migrations.
*
* @return void
*/
public function down()
{
Schema::dropIfExists('users');
}
}
我的表格:
{!! Form::open(['method'=>'POST', 'action'=>'UsersAdminController@store']) !!}
@csrf
<div class="form-group row">
{!! Form::label('firstname', 'First name:') !!}
{!! Form::text('firstname', null, ['class'=>'form-control']) !!}
</div>
<div class="form-group row">
{!! Form::label('suffix', 'Suffix:') !!}
{!! Form::text('suffix', null, ['class'=>'form-control']) !!}
</div>
<div class="form-group row">
{!! Form::label('lastname', 'Last name:') !!}
{!! Form::text('lastname', null, ['class'=>'form-control']) !!}
</div>
<div class="form-group row">
{!! Form::label('city', 'City:') !!}
{!! Form::text('city', null, ['class'=>'form-control']) !!}
</div>
<div class="form-group row">
{!! Form::label('zipcode', 'Zipcode:') !!}
{!! Form::text('zipcode', null, ['class'=>'form-control']) !!}
</div>
<div class="form-group row">
{!! Form::label('phoneNumber', 'Phone number:') !!}
{!! Form::number('phoneNumber', null, ['class'=>'form-control']) !!}
</div>
<div class="form-group row">
{!! Form::label('streetName', 'Street name:') !!}
{!! Form::text('streetName', null, ['class'=>'form-control']) !!}
</div>
<div class="form-group row">
{!! Form::label('streetNumber', 'Street number:') !!}
{!! Form::number('streetNumber', null, ['class'=>'form-control']) !!}
</div>
<div class="form-group row">
{!! Form::label('email', 'E-mail:') !!}
{!! Form::email('email', null, ['class'=>'form-control']) !!}
</div>
<div class="form-group row">
{!! Form::label('password', 'Password:') !!}
{!! Form::password('password', ['class'=>'form-control']) !!}
</div>
<div class="form-group row mb-0">
<div class="col-md-6 offset-md-4">
{!! Form::submit('Create User', ['class'=>'btn btn-primary']) !!}
</div>
</div>
{!! Form::close() !!}
和我的控制器:
public function store(UsersRequest $request)
{
if(trim($request->password) == '')
{
$input = $request->except('password');
}else{
$input = $request->all();
$input['password'] = bcrypt($request->password);
//$input['role'] = 'user';
DB::table('users')->insert(
['role' => 'user']
);
}
User::create($input);
return back()->with('success' , 'User is succesfully created');
}
这是我在请求文件中的验证:
class UsersRequest extends FormRequest
{
/**
* Determine if the user is authorized to make this request.
*
* @return bool
*/
public function authorize()
{
return true;
}
/**
* Get the validation rules that apply to the request.
*
* @return array
*/
public function rules()
{
return [
'firstname' => 'required',
'suffix' => 'string',
'lastname' => 'required',
'phoneNumber' => 'required',
'streetName' => 'required',
'streetNumber' => 'required',
'city' => 'required',
'zipcode' => 'required',
'email' => 'required',
'password' => 'required',
];
}
}
这也是我的用户模型批量分配:
protected $fillable = [
'firstname','suffix','lastname', 'phoneNumber', 'role', 'streetName', 'streetNumber', 'city', 'zipcode' ,'email', 'password',
];
【问题讨论】:
-
你能死掉并转储$request并发布吗?
-
DB::table('users')->insert(['role' => 'user']);您正在将一个新用户插入到数据库中,其中只有role作为字段。firstname未设置且没有默认值,这就是您收到该错误的原因 -
@kerbholz 那么我该如何插入所有值呢?抱歉,我对此很陌生
-
@user10341554 给你:array:11 [▼ "_token" => "dT7jyI8wh8fbjpD4k1Cr8CAVNBDUMpWZZU9qmvyr" "firstname" => "ainsleys" "suffix" => "55238121" "lastname" => "kitchen " "city" => "Amsterdam" "zipcode" => "1123SD" "phoneNumber" => "0652482531" "streetName" => "peterstraat" "streetNumber" => "25" "email" => "ainsley@lol .com" "密码" => "123456789" ]
-
有什么理由不使用 Laravel 内置的身份验证?