Cakephp4 で、認証機能で、エラーが出てしますので、Mysqlのテーブルを一度削除して再度、テーブルを作成、
UsersSeed.phpにデータを入力して、
bin/cake migrations seed --seed UsersSeedの命令を実行したところ、
SQLSTATE[42S22]: Column not found: 1054 Unknown column 'username' in 'field list'とエラーがでました。
最初のデータ入力では問題ありませんでした。'username'のカラムは作成されており
入力したデータを確認しましたが、誤表記はありませんでした。
declare(strict_types=1); use Migrations\AbstractSeed; use Authentication\PasswordHasher\DefaultPasswordHasher; /** * Users seed. */ class UsersSeed extends AbstractSeed { /** * Run Method. * * Write your database seeder using this method. * * More information on writing seeds is available here: * https://book.cakephp.org/phinx/0/en/seeding.html * * @return void */ public function run() { $data = [ [ 'username' => 'admin', 'password' => $this->_setPassword('admin'), 'created' => '2021-03-08 09:10:00', 'modified' => '2021-03-08 09:10:00' ],[ 'username' => 'yamada', 'password' => $this->_setPassword('yamada'), 'created' => '2021-03-08 09:10:00', 'modified' => '2021-03-08 09:10:00' ] ]; $table = $this->table('users'); $table->insert($data)->save(); } protected function _setPassword(string $password) : ?string { if (strlen($password) > 0) { return (new DefaultPasswordHasher())->hash($password); } } }
試したことは、Mysqlのキャッシュクリア、
Migrateで作ったファイルも確認しましたが、2回めにこのようなエラーがでるのかわかりません。
declare(strict_types=1); use Migrations\AbstractMigration; class CreateUsers extends AbstractMigration { /** * Change Method. * * More information on this method is available here: * https://book.cakephp.org/phinx/0/en/migrations.html#the-change-method * @return void */ public function change() { $table = $this->table('users'); $table ->addColumn('username', 'string', [ 'default' => null, 'limit' => 50, 'null' => false ]) ->addColumn('password', 'string', [ 'default' => null, 'limit' => 255, 'null' => false ]) ->addColumn('created', 'datetime') ->addColumn('modified', 'datetime') ->create(); } }
どのように対応してよいか、教えていただけると助かります。
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。