0

次のログインコードがあります:

if ($logged == true) {
                HTTP::redirect('profile/private');
            } else {
                $validation = Validation::factory($_POST)
                        ->rule('username', 'not_empty')
                        ->rule('password', 'not_empty');
                if ($validation->check()) {

                }
                $errors = $validation->errors('login');

ここでは、ユーザー名が入力されていない場合、適切なメッセージが表示されます (たとえば、メッセージ フォルダーの login.php ファイルにメッセージがあります: 'username' => array('not_empty' => 'Field :field can't be空」、パスワード フィールドと同じ) そして、これらの 2 つのルールはエラーで適切に機能しています. しかし、ユーザー名とパスワードの両方が指定され、ユーザーが「有効」として認証されない場合 (たとえば、パスワードが間違っているか、ユーザー名の入力ミスなど)、カスタムが 1 つ必要です。エラー メッセージ (例: 「ユーザー名またはパスワードを確認してください。CAPSLOCK が押されている可能性があります」) これを達成する方法 エラー メッセージとは何ですか? login.php フィールドのすべてのメッセージのように、エラー メッセージを 1 つのフィールドだけに関連させたくありません。助けてください

4

2 に答える 2

1

次に、質問に答えます。これは、ユーザー向けの追加のエラー メッセージです。これは、モデルのプロパティ (ユーザー名、パスワード) の特定のエラーではないため、コントローラーに属します。

コントローラーで、ユーザーがログインしているかどうかを確認し、エラーをエコーし​​ます。

if (!Auth::instance()->login($_POST['username'], $_POST['password'], $_POST['autologin'])) 
{
    echo 'Check username or password, Maybe CAPSLOCK is pressed';
}
于 2013-03-22T10:46:57.797 に答える
0

ドキュメントによると、テンプレートを定義せずに $validation->errors() を呼び出すと、エラーの配列が返されます。次に、$errors 配列を調べて、取得したエラーの種類を判断し、適切に対応することができます。

于 2013-03-21T19:00:18.717 に答える