1. ホーム
  2. php

[解決済み] LaravelにおけるMassAssignmentException

2022-02-13 17:52:31

質問

私はLaravelの初心者です。データベースをシードしたいです。seedコマンドを実行すると、例外が発生します。

  [Illuminate\Database\Eloquent\MassAssignmentException]
  username



db:seed [--class[="..."]] [--database[="..."]]

何が間違っているのでしょうか。私が使っているコマンドは

php artisan db:seed --class="UsersTableSeeder"

私の種クラスは以下の通りです。

class UsersTableSeeder extends Seeder {
    public function run()
    {
            User::truncate();
            User::create([
                'username' => 'PaulSheer',
                'email' => '[email protected]',
                'password' => '45678'
            ]);

            User::create([
                'username' => 'Stevo',
                'email' => '[email protected]',
                'password' => '45678'
            ]);
    }
}

解決方法は?

Laravelのドキュメントのこのセクションを読んでください。 http://laravel.com/docs/eloquent#mass-assignment

Laravelはデフォルトで、大量割り当てのセキュリティ問題に対する保護を提供します。そのため、どのフィールドを大量に割り当てることができるかを手動で定義する必要があります。

class User extends Model
{
    protected $fillable = ['username', 'email', 'password'];
}


警告 : のような重要なフィールドの大量割り当てを許可する場合は、注意が必要です。 password または role . これはセキュリティ上の問題につながる可能性があり、ユーザーがこのフィールドの値を更新できないようにすることができます。