Laravel/SQLSTATE[23000]: Integrity constraint violation: 1062 Duplicate entryのエラーについて
Q&A
Closed
解決したいこと
上記サイトを見ながら管理画面を作っているのですが、
Seederを使ってテストユーザーの登録を行おうとComposerでしたところphp artisan db:seedを入力したところ、下のエラーが発生しました。
ネットで検索しても改善できなかったためご指摘やご教授を頂けたら幸いです!!
発生している問題・エラー
INFO Seeding database.
Database\Seeders\UsersTableSeeder ............................... RUNNING
Illuminate\Database\QueryException
SQLSTATE[23000]: Integrity constraint violation: 1062 Duplicate entry 'test_user1' for key 'users_screen_name_unique' (SQL: insert into `users` (`screen_name`, `name`, `profile_image`, `email`, `password`, `remember_token`, `created_at`, `updated_at`) values (test_user1, TEST1, https://placehold.jp/50x50.png, test1@test.com, $2y$10$xo8wYONjaijjsJcM88.ARee5.y6FAfPRsHNzWdzWleygqb4a9fK5W, MmpbcfAf5p, 2022-10-19 18:55:15, 2022-10-19 18:55:15))
at C:\xampp\htdocs\sns\vendor\laravel\framework\src\Illuminate\Database\Connection.php:759
755▕ // If an exception occurs when attempting to run a query, we'll format the error
756▕ // message to include the bindings with SQL, which will make this exception a
757▕ // lot more helpful to the developer instead of just the database's errors.
758▕ catch (Exception $e) {
➜ 759▕ throw new QueryException(
760▕ $query, $this->prepareBindings($bindings), $e
761▕ );
762▕ }
763▕ }
1 C:\xampp\htdocs\sns\vendor\laravel\framework\src\Illuminate\Database\Connection.php:544
PDOException::("SQLSTATE[23000]: Integrity constraint violation: 1062 Duplicate entry 'test_user1' for key 'users_screen_name_unique'")
2 C:\xampp\htdocs\sns\vendor\laravel\framework\src\Illuminate\Database\Connection.php:544
PDOStatement::execute()
Seeders
DatabaseSeeder.php
namespace Database\Seeders;
// use Illuminate\Database\Console\Seeds\WithoutModelEvents;
use Illuminate\Database\Seeder;
class DatabaseSeeder extends Seeder
{
/**
* Seed the application's database.
*
* @return void
*/
public function run()
{
$this->call([
UsersTableSeeder::class,
TweetsTableSeeder::class,
CommentsTableSeeder::class,
FavoritesTableSeeder::class,
FollowersTableSeeder::class,
AdminUserSeeder::class
]);
}
}
AdminUserSeede
AdminUserSeede.php
namespace Database\Seeders;
use Illuminate\Database\Console\Seeds\WithoutModelEvents;
use Illuminate\Database\Seeder;
use App\Models\AdminUser;
use Illuminate\Support\Facades\Hash;
class AdminUserSeeder extends Seeder
{
public function run()
{
// テストユーザーの登録
$param = [
'name' => 'admin',
'email' => 'example@test.com',
'password' => Hash::make('password'),
];
$adminUser = new AdminUser;
$adminUser->fill($param)->save();
}
}
正直なところまだ勉強中で知識がまだまだない状態でネットを見ても解決策が見つけられなかったため、是非ご指摘ご教授をいただきたいです!!
0