[英]Laravel 5.3: Cannot add Additional user info for User registration
我正在嘗試為該用戶的姓氏添加新的注冊詳細信息。 但是我在將它插入我的數據庫時遇到了麻煩。 這是出現的錯誤
錯誤:
Connection.php 761行中的QueryException:SQLSTATE [HY000]:常規錯誤:1364字段“ f_lastname”沒有默認值(SQL:插入
users
(name
,password
,updated_at
,created_at
)中的值(chu,chu @ yahoo.com,111,2016-10-12 06:55:33,2016-10-12 06:55:33)
這是我的數據庫遷移文件
public function up()
{
Schema::create('users', function (Blueprint $table) {
$table->increments('id');
$table->string('name');
$table->string('f_lastname');
$table->string('email')->unique();
$table->string('password');
$table->rememberToken();
$table->timestamps();
});
}
user.php $ fillable代碼
class User extends Authenticatable
{
use Notifiable;
/**
* The attributes that are mass assignable.
*
* @var array
*/
protected $fillable = [
'name', 'f_lastname', 'email', 'password',
];
/**
* The attributes that should be hidden for arrays.
*
* @var array
*/
protected $hidden = [
'password', 'remember_token',
];
}
和RegistrationController.php驗證器部分
protected function validator(array $data)
{
return Validator::make($data, [
'name' => 'required|max:255|unique:users',
'f_lastname' => 'required|max:255|unique:users',
'email' => 'required|email|max:255|unique:users',
'password' => 'required|min:6|confirmed',
]);
}
/**
* Create a new user instance after a valid registration.
*
* @param array $data
* @return User
*/
protected function create(array $data)
{
return User::create([
'name' => $data['name'],
'f_lastname' => $data['f_lastname'],
'email' => $data['email'],
'password' => bcrypt($data['password']),
]);
}
我看到的大多數教程都是針對laravel 5.2的。 我剛剛使用laravel 5.3。 感謝您的幫助!
錯誤是不言自明的。
它指出f_lastname列不為null,並且沒有分配默認值。 因此,在查詢中,您必須為該列添加一些值,或者更改表結構並為其分配一些默認值,或者使其成為null接受的列。
例如:
將列更改為允許為空:
ALTER TABLE `user` CHANGE `f_lastname` `f_lastname` TEXT NULL
或者,將其默認值設置為空字符串:
ALTER TABLE `user` CHANGE `f_lastname` `f_lastname` TEXT NOT NULL DEFAULT ''
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.