С помощью этого компонента вы можете использовать в своих проектах «мягкое удаление» - т.е. установку флага для пометки удаленных записей, вместо реального их удаления. Зачем это нужно? Например, для хранения предыдущих версий отредактированных записей на блоге, для сохранения архива старых товаров в магазине — применений масса. Я стараюсь во всех своих проектах использовать «мягкое удаление» даже просто для того чтобы исключить ошибку случайного удаления. Заказчики часто обращаются: «ой, а мы удалили, а потом передумали, а можно восстановить?».
Внимание! Я еще не тестировал этот компонент с CakePHP 1.2 RC3. Судя по отзывам в комментариях к компоненту, есть проблемы с совместимостью. Эта запись — перевод документации, в следующей я опишу возможные проблемы и пути их решения.
Читать дальше “Мягкое удаление с помощью Soft Delete Behavior”
Теги: cakephp, компонент, модель, пример
В большинстве приложений необходимо не только отображать данные, но и взаимодействовать с пользователями. И даже не просто взаимодействовать, а по разному работать с разными группами. Даже в этом блоге — есть администраторы, есть зарегистрированные пользователи, а есть просто читатели. Чем админ отличается от обычного пользователя? Тем что у него есть доступ к определенным функциям. Как определить что пользователь — админ? Авторизовать его, узнать логин и пароль.
Эти задачи — авторизацию и определение прав доступа к различным функциям — приходится решать при разработке каждого сайта. В CakePHP есть встроенный компонент Acl для работы с правами, но он слишком навороченный для простых сайтов. Часто, если надо просто ограничить доступ к админке, мы в своей студии используем простой ValidationComponent, единственное что модифицированный под использование Http-Digest авторизации.
Читать дальше “SimpleAcl — простой компонент для авторизации и проверки прав пользователей”
Теги: cakephp, авторизация, модель, пример, форма, шаблон
Дополнительную гибкость системе маршрутов придают специальные элементы. Эти элементы вы можете определять сами, с их помощью в URL-адресе отмечаются места, где будут находиться параметры, передаваемые в функции контроллера. При выполнении запроса, значения специальных элементов сохраняются в массиве $this->params. Обратите внимание на отличие специальных элементов маршрута от именованных: именованные (/controller/action/name:value) передаются в массиве $this->passedArgs.
При создании специального элемента для него надо обязательно указать регулярное выражение — с его помощью CakePHP будет проверять правильность URL-адреса.
Читать дальше “Работаем с маршрутами в CakePHP (часть 3)”
Теги: cakephp, маршрут, пример, регулярное выражение
Во многих приложениях используются связи типа многие-ко-многим - HasAndBelongsToMany или HABTM в терминологии CakePHP. Они нужны для создания меток к записям в блоге, привязки атрибутов к товарам в интернет магазине, пользователей к пользователям в социальных сетях и т.д.
Для создания связи HABTM в CakePHP используется вспомогательная таблица, в которой хранятся два идентификатора связываемых данных. Например, если нам надо связать таблицы posts и tags, то вспомогательная таблица будет иметь вид:
Читать дальше “Добавление и удаление ассоциаций между записями”
Теги: cakephp, habtm, ассоциация, модель, пример, связь
В CakePHP есть собственные компоненты для аутентификации и авторизации, но не многие начинающие программисты ими пользуются, потому что эти компоненты довольно сложные. А формы-то делать надо, иначе как авторизовать пользователя в админку?
Сегодня мне показали еще один пример такой формы. Для простоты объяснения сути заметки, я приведу простой html-код формы:
Читать дальше “Ошибки в формах входа — ввод логина и пароля”
Теги: cakephp, ошибка, пример, форма