リチウムと検証ログインフォーム(モデルなし) - どのように?
質問
ログインフォームにリチウムの単純認証からのバリデータを使用する方法はありますか。/ a>チュートリアル。モデルで検証を使用する方が良いことを知っていますが、ログインフォームがあります。
私がやろうとしていることはSessionsControllerにあります:
<?php
namespace app\controllers;
use lithium\security\Auth;
use lithium\storage\Session;
use lithium\util\Validator;
class SessionsController extends \lithium\action\Controller {
private $rules = array(
'password' => array(
array('notEmpty', 'message' => 'password is empty'),
),
'email' => array(
array('notEmpty', 'message' => 'email is empty'),
array('email', 'message' => 'email is not valid')
)
);
public function add() {
if ($this->request->data && Auth::check('default', $this->request)) {
return $this->redirect('/');
}
// Handle failed authentication attempts
$errors = Validator::check($this->request->data, $this->rules);
return compact('errors');
}
public function delete() {
Auth::clear('default');
return $this->redirect('/');
}
/* ... */
}
.
解決
フォーム内にレンダリングされたエラーはエンティティにバインドされ、$this->form->create($user)
で作成したときにフォームにバインドされます。この場合にのみ、ヘルパーが自動的にフォームヘルパーのおかげでエラーが表示されます。
必要なのが、コントローラ、着信データをチェックする場合は、Form View($this->request->data['password']
(たとえば、if (!empty($errors))
)で自分で処理する必要があるエラーを確認できます。
所属していません StackOverflow