2016-10-12 22 views
0

ユーザーの新しい登録詳細をユーザーのLASTNAMEに追加しようとしています。しかし、私のデータベースに挿入する際に問題があります。これが来るエラーでアップLaravel 5.3:ユーザー登録の追加ユーザー情報を追加できません

ERROR:これは私のデータベースの移行ファイルが

QueryException in Connection.php line 761: SQLSTATE[HY000]: General error: 1364 Field 'f_lastname' doesn't have a default value (SQL: insert into users (name , email , password , updated_at , created_at) values (chu, [email protected], 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 $充填可能なコード

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', 
]; 
} 

RegistrationControl r.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を使ったばかりです。あなたの助けを歓迎します!

+0

可能な重複'display \ _name'はデフォルト値を持たない](http://stackoverflow.com/questions/18751291/mysql-error-1364-field-display-name-doesnt-have-default-value) –

答えて

1

エラーは自己説明的です。

これは、列f_lastnameがnullではなく、既定値が割り当てられていないことを示しています。だから、あなたのクエリでは、いくつかの値を持つ列を含めるか、またはテーブル構造を変更し、いくつかのデフォルト値を割り当てるか、それがnullの受け入れられた列にする必要があります。

例:ヌルを許可する

変更コラム:

ALTER TABLE `user` CHANGE `f_lastname` `f_lastname` TEXT NULL 

や、空の文字列としてそれをデフォルト値を与える:1364フィールド:[MySQLエラーの

ALTER TABLE `user` CHANGE `f_lastname` `f_lastname` TEXT NOT NULL DEFAULT '' 
+0

ありがとう!問題が解決しました! –

+0

それは素晴らしいです:) –

関連する問題