как получить встроенные сообщения об ошибках валидации CakePHP? - PullRequest
0 голосов
/ 30 июля 2009

Я пытаюсь использовать встроенные функции проверки cakePHP для моей страницы регистрации / входа.

<?php
class User extends AppModel
{
    var $name = 'User';
    var $validate = array(
                          'name' => VALID_NOT_EMPTY,
                          'password' => VALID_NOT_EMPTY,
                          'email_id' => VALID_EMAIL
                         );
}

У меня нет отдельного файла просмотра для регистрации или входа в систему. У меня есть и регистрационный и логин-код приложения в главном контроллере и представления в одном файле index.ctp. Если регистрация или логин действительны, страница перенаправляется на домашнюю страницу главного контроллера.

class UsersController extends AppController 
{
    var $name = 'Users';
    var $helpers = array('Html', 'Form' );

    function register()
    {
     if (!empty($this->data))
      {
        if ($this->User->save($this->data))
        {
          $this->Session->setFlash('Your registration information was accepted.');
          $this->redirect('/main/home');
        }

      }
    }
 }

Index.ctp

<p>Please fill out the form below to register an account.</p>
<?php 
      echo $form->create('User', array('action' => 'register'));
      echo $form->input('name');
      echo $form->input('email_id');
      echo $form->input('password');
      echo $form->end('Register');
?>

<h3>Login</h3>
<?php
      echo $form->create('User',array('action'=>'login'));
      echo $form->input('email_id');
      echo $form->input('password');
      echo $form->end('Login');
?>

Поэтому пользовательские сообщения об ошибках не отображаются. Потому что, если у меня есть отдельный файл представления для модуля регистрации, я получаю пользовательские сообщения.

Но я не хочу отдельного файла просмотра регистра и отдельного файла просмотра входа в систему. Я хочу, чтобы обе функции были в индексном файле основного контроллера. Не могли бы вы помочь мне?

РЕДАКТИРОВАТЬ 1

Если я использую рендер, это то, что я получаю в браузере.

Ваша регистрация не удалась.

не найден

Ошибка: запрошенный адрес '/ users / register' не найден на этом сервере.

Это функция регистра в главном контроллере:

function register()
    {
      if (!empty($this->data))
      {
        if ($this->User->save($this->data))
        {
          $this->Session->setFlash('Your registration information was accepted.');
          $this->render('home');
        }
        else
        {
            $this->Session->setFlash('Your registration failed.');
            $this->render('index');
        }

      }
    }

1 Ответ

0 голосов
/ 31 июля 2009

Может возникнуть конфликт, потому что вы создаете две формы, использующие одну и ту же модель. Если вы закомментируете форму входа в систему, появятся ли сообщения об ошибках?

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