cakephp3の環境で、
POSTで受けたメールアドレスをデータベースから探して、存在するかチェックを行いたいのですが、
エラーが発生てしまいます。
どなたかご教示いただけないでしょうか。
Error: [PDOException] SQLSTATE[42S22]: Column not found: 1054 Unknown column 'Users.password' in 'field list'
カラム情報には『passwd』としているのですが'Users.password'となり、???状態です。
Modelはbakeコマンドから作成しました。
$ cake bake model users
コントローラ
<?php namespace App\Controller; use App\Controller\AppController; use Cake\ORM\TableRegistry; class IndexController extends AppController { public function index() { $email = $this->request->data("email"); $query = TableRegistry::get("Users")->find(); foreach($query as $q) { print_r($q); } }
Model/Entity/User.php
<?php namespace App\Model\Entity; use Cake\ORM\Entity; class User extends Entity { protected $_accessible = [ '*' => true, 'id' => false, ]; protected $_hidden = [ 'passwd' ]; }
Model/Table/UsersTable.php
<?php namespace App\Model\Table; use App\Model\Entity\User; use Cake\ORM\Query; use Cake\ORM\RulesChecker; use Cake\ORM\Table; use Cake\Validation\Validator; class UsersTable extends Table { public function initialize(array $config) { parent::initialize($config); $this->table('users'); $this->displayField('id'); $this->primaryKey('id'); $this->addBehavior('Timestamp'); } public function validationDefault(Validator $validator) { $validator ->allowEmpty('id', 'create'); $validator ->requirePresence('name', 'create') ->notEmpty('name'); $validator ->email('email') ->requirePresence('email', 'create') ->notEmpty('email'); $validator ->requirePresence('passwd', 'create') ->notEmpty('passwd'); return $validator; } public function buildRules(RulesChecker $rules) { $rules->add($rules->isUnique(['email'])); return $rules; } }
テーブル情報
mysql> desc users; +-------------+---------------------+------+-----+---------+----------------+ | Field | Type | Null | Key | Default | Extra | +-------------+---------------------+------+-----+---------+----------------+ | id | bigint(20) unsigned | NO | PRI | NULL | auto_increment | | name | varchar(255) | NO | | NULL | | | email | varchar(255) | NO | | NULL | | | passwd | char(32) | NO | | NULL | | +-------------+---------------------+------+-----+---------+----------------+
回答1件
あなたの回答
tips
プレビュー