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
Новые статьи и публикации
- 2025-03-14 » SPF-запись
- 2025-03-07 » SEO на маркетплейсах: как оптимизировать карточку товара для поисковой выдачи
- 2025-02-18 » Топ-10 бесплатных нейросетей для генерации изображений: лучшие ии генераторы 2024 года
- 2025-02-11 » Критическая уязвимость в 1С-Битрикс
- 2025-02-11 » Google Search Console: руководство для начинающих вебмастеров
- 2025-02-11 » Методы измерения результативности рекламных кампаний: плюсы и минусы
- 2025-02-11 » Тренды SEO в 2025 году
- 2025-02-10 » Свой Google в локалке. Ищем иголку в стоге сена
- 2025-01-29 » SEO — это комплексная работа. Шесть главных факторов ранжирования сайтов
- 2025-01-29 » Гайд для главной страницы e-commerce сайта: как оформить, чтобы повысить конверсию
- 2025-01-20 » Krea AI выпустила бесплатную функцию преобразования изображений в 3D-объекты — их можно вращать и вписывать в фотографии
- 2025-01-19 » Отзывы на Яндекс Картах: как пройти модерацию
- 2025-01-15 » Топ-6 лучших российских нейросетей, в которых можно генерировать тексты и изображения бесплатно и без VPN
- 2025-01-14 » 15 бесплатных способов узнать, чем интересуется ваша аудитория
- 2025-01-11 » Бездепозитные бонусы в казино за регистрацию с выводом: особенности и возможности получения
- 2025-01-09 » Новая модель LAM способна выполнять задачи в Word
- 2024-12-26 » Универсальный промпт для нейросети: как выжать максимум из ChatGPT, YandexGPT, Gemini, Claude в 2025
- 2024-11-26 » Капитан грузового судна, или Как начать использовать Docker в своих проектах
- 2024-11-26 » Обеспечение безопасности ваших веб-приложений с помощью PHP OOP и PDO
- 2024-11-22 » Ошибки в Яндекс Вебмастере: как найти и исправить
- 2024-11-22 » Ошибки в Яндекс Вебмастере: как найти и исправить
- 2024-11-15 » Перенос сайта на WordPress с одного домена на другой
- 2024-11-08 » OSPanel 6: быстрый старт
- 2024-11-08 » Как установить PhpMyAdmin в Open Server Panel
- 2024-09-30 » Как быстро запустить Laravel на Windows
- 2024-09-25 » Next.js
- 2024-09-05 » OpenAI рассказал, как запретить ChatGPT использовать содержимое сайта для обучения
- 2024-08-28 » Чек-лист: как увеличить конверсию интернет-магазина на примере спортпита
- 2024-08-01 » WebSocket
- 2024-07-26 » Интеграция с Яндекс Еда
Когда человек счастлив, он всегда хорош. Но не всегда хорошие люди бывают счастливы. О. Уайльд «Портрет Дориана Грея» |
Мы создаем сайты, которые работают! Профессионально обслуживаем и продвигаем их , а также по всей России и ближнему зарубежью с 2006 года!
Как мы работаем
Заявка
Позвоните или оставьте заявку на сайте.
Консультация
Обсуждаем что именно Вам нужно и помогаем определить как это лучше сделать!
Договор
Заключаем договор на оказание услуг, в котором прописаны условия и обязанности обеих сторон.
Выполнение работ
Непосредственно оказание требующихся услуг и работ по вашему заданию.
Поддержка
Сдача выполненых работ, последующие корректировки и поддержка при необходимости.
Или напишите нам в WhatsApp
Или напишите нам в WhatsApp