CakePhp は初めてで、CakePhp 2.x を使用しています。私はおそらく、以下の問題を間違った方法で解決しようとしています。そして、私は本当に単純なことを見落としていることを知っていますが、.....
「5 ~ 15 文字の間」に基づいてログインの詳細を検証していますが、期待どおりにエラーが返されます。
[The MODEL]
public $validate = array(
'username' => array(
'between' => array(
'rule' => array('between', 5, 15),
'message' => 'Between 5 to 15 characters'
)
),
'password' => array(
'rule' => array('minLength', '8'),
'message' => 'Minimum 8 characters long'
)
);
[The CONTROLLER]
public function login() {
if ($this->request->data) {
$this->User->set($this->request->data);
if ($this->User->validates() && $this->Auth->login()) {
if ($user = $this->Auth->user()) {
$this->render($this->Auth->redirect());
}else{
//??
}
}else{
$this->User->create();
pr($this->User->invalidFields());
$errors = $this->User->validationErrors;
$data = compact('errors');
$this->set('errors', $data);
$this->set('_serialize', array('errors'));
$this->Session->setFlash('Your username/password combination was incorrect');
}
}
}
したがって、問題は、ログインの詳細 (ユーザー) が存在しない場合でも、フィールドが上記のモデルのルールに従っている場合、エラーは返されない (ダメ) ことです。これに別の検証を追加して、そのユーザーが実際に存在するかどうかを確認する別のルールを追加するのは正しいでしょうか? ならどうやって!?
または、これをコントローラーのログイン機能に組み込み、ユーザーが存在するかどうかを確認しますか? 私は今少し混乱しています。画面を見ている時間が長かったのかもしれません。
ありがとう。