2016-12-07 15 views
0

Authのlaravel 5.3をそのまま使用すると、avatarフィールドを追加するにはどうすればよいですか? 私はこれが好きで、エラーがあります:laravel 5.3の `Auth`を使用する際に` avatar`フィールドを追加するには?

1、私はテーブル 'users'にファイルavatarを追加しました。

public function up() 
{ 
    Schema::create('users', function (Blueprint $table) { 
     $table->increments('id'); 
     $table->string('name'); 
     $table->string('avatar'); // add a `avatar` filed 
     $table->string('email')->unique(); 
     $table->string('password'); 
     $table->rememberToken(); 
     $table->timestamps(); 
    }); 
} 

2を、そして、テストレジスタは、エラーが発生した\App\Http\Controllers\Auth\RegisterController.php

protected function create(array $data) 
{ 
    return User::create([ 
     'name' => $data['name'], 
     'email' => $data['email'], 
     'password' => bcrypt($data['password']), 
     'avatar'=> '/images/avatar.png', //add a defalut value of `avatar` 
    ]); 
} 

のcreate()メソッドにavatarのdefalut値を追加します。

SQLSTATE[HY000]: General error: 1364 Field 'avatar' doesn't have a default value (SQL: insert into `users` (`name`, `email`, `password`, `updated_at`, `created_at`) values (user01, [email protected], $2y$10$z4wtbQWbqU00000, 2016-12-07 19:31:09, 2016-12-07 19:31:09)) 

私はそれをデバッグしこのエラーは\vendor\laravel\framework\src\Illuminate\Foundation\Auth\RegistersUsers.phpの次の行にあります。

public function register(Request $request) 
{ 
    $this->validator($request->all())->validate(); 

    event(new Registered($user = $this->create($request->all()))); //the error occurs in this line 

    $this->guard()->login($user); 

    return $this->registered($request, $user) 
     ?: redirect($this->redirectPath()); 
} 

どうすればよいですか?

+0

ユーザーを保存する前に移行を実行しましたか? – rotvulpix

+0

@rotvulpixいいえ、テーブルに追加した後に移行を実行しました。ユーザーテーブルの 'avatar'フィールドがあります。 – zwl1619

答えて

0

ほとんどの場合、移行をテーブルに追加する前に実行したか、またはユーザーテーブルに既存のフィールドがありますが、アバターはNULL可能ではありません。 あなたがきれいな方法で何をすべきか:

php artisan migrate:rollback 

この意志、まあ、移行の最後のバッチをロールバックします。 今、あなたはあなたのユーザーの移行では、そのようにアバターを追加する必要があります。

$table->string('avatar')->nullable(); 

は現在、適切に設定する必要があります。

+0

いいえ、テーブルに追加した後に移行を実行しました。 'users'テーブルに' avatar'フィールドがあります。 – zwl1619

+0

@ zwl1619 RegisterControllerの 'validator'関数にアバターフィールドを追加しましたか? – GabMic

関連する問題