Проверка CakePHP - PullRequest
       3

Проверка CakePHP

1 голос
/ 14 мая 2011

Как мне показать сообщения при использовании проверки CakePHP?Так как я создавал поля ввода вручную, используя input(), вместо этого использовал сокращение form() helper.

например, Форма:

<?php echo $this->Form->create('User', array('id' => 'loginform', 'type' => 'post',
'url' => array('controller' => 'users', 'action' => 'login'))); ?>

    <fieldset id="login">

        <ul class="clearfix">               
            <li id="li-username">
                <?php echo $this->Form->input('email', array( 'label' => array('class' => 'placeholder', 'text' => 'Email address or username') )); ?>
            </li>
            <li id="li-password">
                <?php echo $this->Form->input('password', array( 'type' => 'password', 'label' => array('class' => 'placeholder', 'text' => 'Password') )); ?>
                <span id="iforgot"><?php echo $this->Html->link('?', 
                array('controller' => 'users', 'action' => 'forgotpassword'),  array('title' => 'Forgot your password?')); ?></span>
            </li>
            <li id="li-submit">
                <button type="submit" title="Log in">Log in &#9658;</button>
            </li>
        </ul>

    </fieldset>

<?php echo $this->Form->end(); ?>

, и это моя проверка в модели пользователя:

public $validate = array(
    'email' => array(
        'valid' => array(
            'rule' => 'email',
            'message' => 'The email is not valid'
        ),
        'required' => array(
            'rule' => 'notEmpty',
            'message' => 'Please enter an email'
        )
    )
);

Однако сообщения об ошибках проверки не отображаются?

РЕДАКТИРОВАТЬ: я проверил это в моей форме регистрации в / users / add /, и это работает, так что кажется, что автопроверка не работает с методом входа в систему ????Как мне добавить подтверждение для формы входа в систему: /

Ответы [ 3 ]

1 голос
/ 14 мая 2011

Проверка фактически сохраняется в объекте модели. Я не совсем уверен, как получить доступ к ошибкам, но я думаю, что это в $ this-> User-> validationErrors.

Посмотрите на модель API для получения дополнительной информации.

Для входа в систему используйте компонент auth . Если вы не хотите, то просто получите пользователя из базы данных и отобразите ошибку, используя $ this-> Session-> SetFlash (), если пользователь не аутентифицируется.

0 голосов
/ 17 марта 2016

Сначала вы проверяете, что ваши почтовые данные собираются проверить функцию. Вы можете просто проверить это в другом состоянии, например:

$this->{$this->modelClass}->set($this->data);
if($this->{$this->modelClass}->validates(){
    //Save data in DB
}else{
   pr($this->{$this->modelClass}->validationErrors); // This will show your error message
}

Вы также можете показать ошибку в вашем файле view.ctp, как это


    $errors = '';
    foreach ($this->validationErrors[$model] as $key =>  $validationError) { 
        $errors .= $this->Html->tag('li', $validationError[0]);
    }
    echo $this->Html->tag('ul', $errors,array('class' => 'error'));

0 голосов
/ 17 марта 2016

Вы можете отобразить функцию входа в свой код?
Я думаю, что в вашем коде с перенаправлением in-case validate false
Если вы используете $ this-> redirect (), он не будет показывать сообщения проверки:)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...