CakePHP и проверка нескольких форм на одной странице

112
10

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

Итак, я создал две новые модели под названием UserLoginForm и UserRegisterForm, расширяющие модель User и добавляя валидацию для каждой формы в моделях.

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

Огромное спасибо заранее!

спросил(а) 2013-06-05T02:34:00+04:00 7 лет, 8 месяцев назад
1
Решение
85

Вы должны попытаться подумать о модели как записи в таблице соответствия, а контроллер - в качестве реквестера действий.

В этом конкретном случае:

├── Controller/
│   ├── UsersController.php
└── Model/
   ├── User.php

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

Валидация для обеих форм должна быть в модели User, так как оба они работают над регистром в таблице users. Скорее всего, в методе обратного вызова.

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

Если это запутывает, попробуйте сделать шаг назад и начать с чтения этого и сделать учебник блога.

Как только эти понятия согласятся, вы будете любить CakePHP.

ответил(а) 2013-06-05T03:15:00+04:00 7 лет, 8 месяцев назад
Ваш ответ
Введите минимум 50 символов
Чтобы , пожалуйста,
Выберите тему жалобы:

Другая проблема