2017-08-02 13 views
1

私はLaravel 5.4で php artisan db:seedというコマンドを呼び出します。コンソールには、私は、このエラーを印刷:Laravel 5.4。エラーが発生しました:php artisan db:seed

[Illuminate\Database\QueryException]
SQLSTATE[HY000]: General error: 1364 Field 'email' doesn't have a default v alue (SQL: insert into users (name , password , updated_at , created_ at) values (user, $2y$10$YAPLstS9Q/Z7vdL82oefieAo4ZToe4xAiNkLF4nygnniKDhWB njwO, 2017-08-02 16:00:42, 2017-08-02 16:00:42))

[PDOException]
SQLSTATE[HY000]: General error: 1364 Field 'email' doesn't have a default value

私はdatabase.phpファイルで設定してみてください: 'strict' => falseが、これisn`tが作動します。 Hoさんがこの問題を解決しましたか?あなたのコマンドラインで

行います:php artisan make:seeder UsersTableSeeder

+0

一般的にメールフィールドは必須で、laravel usersテーブルで一意である必要があります。クエリで電子メールフィールドを使用していません。 –

+0

どうすればいいですか? – overFlow

+0

電子メールフィールドを設定する必要があります – elegisandi

答えて

0

は、手順に従って行います。これで、以下のようにコードを書き、ファイルUsersTableSeeder.phpあなたがrun()方法が表示されますに行くdatabase\seedsフォルダに作成された同じファイルを参照することができます:

public function run() 
{ 
    DB::table('users')->insert([ 
     'name' => str_random(10), 
     'email' => str_random(10).'@gmail.com', 
     'password' => bcrypt('secret'), 
    ]); 
} 

さて、この後は、使用することができます:php artisan db:seedをデータベースまたはあなたをシードします行うことができます。php artisan db:seed --class=UsersTableSeederをシードするだけで、あなたのUsersTableSeederそして、最後のステップは、database/seedでとrun()機能タイプでDatabaseSeeder.phpをファイルに行くこの:

public function run() 
{ 
    $this->call(UsersTableSeeder::class); 
} 

それとも、を作成する必要はありませんあなたは単に

は、この情報がお役に立てば幸いDatabaseSeeder.phpファイル内run()関数に

DB::table('users')->insert([ 
    'name' => str_random(10), 
    'email' => str_random(10).'@gmail.com', 
    'password' => bcrypt('secret'), 
]); 

をコピーすることができます。

関連する問題