CakePHP с нуля: подправляем код, выданный генератором Bake. Часть 7 из 10
В предыдущем уроке серии мы сгенерировали приложение с помощью консоли Bake CakePHP. Сейчас мы займемся изменением приложения так, как нужно нам.
Открываем файл /app/models/category.php. CakePHP оставляет в коде закомментированные строки, назначение которых вполне очевидно. Мы изменим сообщение об ошибке проверки. Снимаем комментарии с соответствующей строки и вводим текст нашего сообщения:
var $validate = array( 'name' => array( 'notempty' => array( 'rule' => array('notempty'), 'message' => 'Обязательно нужно дать имя категории!', ), ), );
Также изменяем сообщения об ошибках проверки в файле /app/models/job.php:
var $validate = array( 'category_id' => array( 'notempty' => array( 'rule' => array('notempty'), //'message' => 'Your custom message here', ), ), 'user_id' => array( 'notempty' => array( 'rule' => array('notempty'), //'message' => 'Your custom message here', ), ), 'title' => array( 'notempty' => array( 'rule' => array('notempty'), 'message' => 'Нужно ввести значение в данное поле!' ), ), 'body' => array( 'notempty' => array( 'rule' => array('notempty'), 'message' => 'Нужно ввести значение в данное поле!' ), ), 'company' => array( 'notempty' => array( 'rule' => array('notempty'), 'message' => 'Нужно ввести значение в данное поле!' ), ), 'job_type' => array( 'notempty' => array( 'rule' => array('notempty'), 'message' => 'Нужно ввести значение в данное поле!' ), ), );
И для модели user также меняем сообщения в файле /app/models/user.php:
var $validate = array( 'username' => array( 'notempty' => array( 'rule' => array('notempty'), 'message' => 'Введите имя пользователя!', ), ), 'pass' => array( 'notempty' => array( 'rule' => array('notempty'), 'message' => 'Введите пароль!', ), 'between' => array( 'rule' => array('between', 5, 15), 'message' => 'Длина пароля должна от 5 до 15 символов' ) ), 'name' => array( 'notempty' => array( 'rule' => array('notempty'), 'message' => 'Необходимо ввести имя!', ), ), 'email' => array( 'notempty' => array( 'rule' => array('notempty'), 'message' => 'Необходимо ввести адрес email', ), 'email' => array( 'rule' => array('email', true), 'message' => 'Введите корректный адрес email!' ) ), );
Здесь используются дополнительные проверки для пароля и поля ввода адреса email. Для адреса email используется проверка его корректности. Передача в качестве второго аргумента логического значения true, указывает функции на необходимость проверки хоста адреса.
Добавим некоторые изменения в нашу модель. Поле для ввода пароля является простым полем для ввода текста. Внесем здесь изменения. Открываем файл/app/views/users/add.php и изменяем код:
echo $this->Form->input('username'); echo $this->Form->input('pass', array('type' => 'password')); echo $this->Form->input('pass2', array('type' => 'password', 'label' => 'Повторите пароль')); echo $this->Form->input('name'); echo $this->Form->input('location'); echo $this->Form->input('address'); echo $this->Form->input('email'); echo $this->Form->input('web');
Мы добавили тип для поля пароля, а также ввели новое дополнительное поле: 'Повторите пароль'. Используем распространенную практику предохранения пользователя от ошибок при вводе пароля.
Теперь надо добавить новый функционал в наше приложение. Открываем файл /app/models/user.php и добавляем правило:
'pass2' => array( 'notempty' => array( 'rule' => array('notempty'), 'message' => 'Необходимо подтвердить ваш пароль!', ), 'custom' => array( 'rule' => array('CheckPasswordMatch'), 'message' => 'При повторении пароль не совпадает!', ), ),
Мы выполняем проверку наличия значения и используем пользовательское правило. Для пользовательского правила надо добавить соответствующий код функции непосредственно в код модели перед правилами ассоциаций между таблицами:
function CheckPasswordMatch($data) { return $this->data['User']['pass'] == $this->data['User']['pass2']; }
Функция просто выполняет проверку на соответствие значений в двух полях.
Также нужно изменить маршрутизацию, чтобы пользователь мог обращаться к нашему приложению простым введением адреса проекта (без указания конкретного контроллера в адресе URL). Изменение маршрутизации было описано в 4 уроке серии. Лучше всего использовать контроллер для вакансий.
Для перевода интерфейса на русский язык придется поработать с файлами видов .ctp. По своей сути они являются HTML страницами с вкраплениями PHP кода. Для вывода надписей над полями ввода нужно будет использовать параметр label, как мы сделали при добавлении поля для повторного ввода пароля. Надписи для перевода достаточно просто определяются. Нужно проработать все виды для всех трех моделей (users, jobs и categories).
В следующем уроке будет разбираться тема шаблонов для CakePHP (изменение, добавление стилей и прочее).
Источник: http://feedproxy.google.com/~r/ruseller/CdHX/~3/-R-cqZRjCPw/lessons.php
Дайджест новых статей по интернет-маркетингу на ваш email
Новые статьи и публикации
- 2024-04-22 » Комментирование кода и генерация документации в PHP
- 2024-04-22 » SEO в России и на Западе: в чем основные отличия
- 2024-04-22 » SEO для международного масштабирования
- 2024-04-22 » Как использовать XML-карты для продвижения сайта
- 2024-04-22 » Цифровой маркетинг: инструменты для продвижения и рекламы в 2024 году
- 2024-04-22 » Что такое CSS-модули и зачем они нам?
- 2024-04-17 » 23 сервиса для эффективного экспресс-аудита любого сайта
- 2024-04-08 » Яндекс переходит на новую версию Wordstat
- 2024-04-08 » Яндекс интегрировал в свой облачный сервис эмпатичную нейросеть
- 2024-04-08 » Новая версия нейросети Claude превзошла по мощности аналоги Google и OpenAI
- 2024-04-08 » Как пользоваться GPT 4 и Claude бесплатно и без VPN
- 2024-03-13 » Стратегии SEO на 2024 год
- 2024-03-13 » Как использовать анимацию с помощью JavaScript-библиотеки GSAP
- 2024-03-13 » Использование GSAP 3 для веб-анимации
- 2024-03-13 » Cогласование топографической съёмки с эксплуатирующими организациями
- 2024-02-19 » Теряются лиды? Как настроить сквозную аналитику
- 2024-02-17 » Мерч и IT: на что обратить внимание в 2024 году
- 2024-02-16 » Копируем с RSync: основные примеры синхронизации файлов
- 2024-02-15 » Лучшие noCode AI платформы для создания диалоговых ботов
- 2024-02-14 » Факторы ранжирования Google 2024 — исследование Semrush
- 2024-02-12 » Перенос сайта на другой хостинг
- 2024-02-05 » В России сформирован реестр хостинг-провайдеров
- 2024-02-04 » Использование SSH для подключения к удаленному серверу Ubuntu
- 2024-02-03 » Подключаемся к серверу за NAT при помощи туннеля SSH. Простая и понятная инструкция
- 2024-02-02 » Настройка CI/CD для Gitlab-репозитория: схемы и гайд по шагам
- 2024-02-01 » GitLab CI Pipeline. Запуск сценария через SSH на удаленном сервере
- 2024-01-29 » Introduction to GitLab’s CI/CD for Continuous Deployments
- 2024-01-26 » Настройка GitLab CI/CD
- 2024-01-25 » Установка shell gitlab runner
- 2024-01-25 » Установка и регистрация gitlab-runner в docker контейнере
Есть три способа отвечать на вопросы: сказать необходимое, отвечать с приветливостью и – наговорить лишнего Плутарх - (ок. 46 — ок.120) - древнегреческий писатель, историк |
Мы создаем сайты, которые работают! Профессионально обслуживаем и продвигаем их , а также по всей России и ближнему зарубежью с 2006 года!
Как мы работаем
Заявка
Позвоните или оставьте заявку на сайте.
Консультация
Обсуждаем что именно Вам нужно и помогаем определить как это лучше сделать!
Договор
Заключаем договор на оказание услуг, в котором прописаны условия и обязанности обеих сторон.
Выполнение работ
Непосредственно оказание требующихся услуг и работ по вашему заданию.
Поддержка
Сдача выполненых работ, последующие корректировки и поддержка при необходимости.