Forms kohana用户登录添加错误

Forms kohana用户登录添加错误,forms,validation,authentication,login,kohana,Forms,Validation,Authentication,Login,Kohana,我有以下登录代码: if ($logged == true) { HTTP::redirect('profile/private'); } else { $validation = Validation::factory($_POST) ->rule('username', 'not_empty') ->

我有以下登录代码:

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');
这里的情况是,如果没有输入用户名,将播下正确的消息(我在messages文件夹的login.php文件中有消息,例如:“username'=>array('not_empty'=>“Field:Field不能为空”,对于password字段也是如此)。这两个规则工作正常,但存在错误。
但当用户名和密码都已给出,且用户未被验证为“有效”(例如错误的密码或输入错误的用户名)时,我需要一条自定义错误消息(例如:“检查用户名或密码,可能已按下CAPSLOCK”)。如何实现这一点?错误消息是什么?我不希望它像login.php字段中的所有消息一样只与一个字段相关。请根据if you call$validation->errors()帮助在没有定义模板的情况下,它将返回一个错误数组,然后您可以查看$errors数组并确定您得到的错误类型,并做出适当的反应,然后回答您的问题:这是一条用于用户目的的额外错误消息。这不是某个或您的模型属性(用户名、密码)上的特定错误,因此它属于您的控制器

仅在控制器中,检查用户是否登录并回显错误

if (!Auth::instance()->login($_POST['username'], $_POST['password'], $_POST['autologin'])) 
{
    echo 'Check username or password, Maybe CAPSLOCK is pressed';
}

$validation->errors()在check()方法之后为null。我不知道是否可以从$logged=Auth::instance()->login($\u POST['username'],$\u POST['password'],$\u POST['autologin']=false)中获取错误。我想我可以将错误添加到例如用户名字段,索引为'general',这将起作用,但不确定错误是否由用户名生成。因此,从这一点来看,这将是错误的。我在这里找到了一个方法:所以我认为它可以使用。我在注册操作中这样做,效果很好,但我需要进行有效登录当我检查:$logged=Auth::instance()->login($\u POST['username'],$\u POST['password'],$\u POST['autologin']=false)时,我只有true或false。我需要给用户这样一条消息:“检查用户名或密码,可能CAPSLOCK被按下了”,这与任何特定字段都没有关系(我想是这样)。那么您根本不需要验证。只需检查$logged===false,然后回显错误。我认为这是最好的方法。我将使用它。