К основному контенту

Значения полей created/updated по-умолчанию в CakePHP

Не секрет, что некоторые поля в моделях Cake умеет заполнять самостоятельно, основываясь на названии поля. Например в поля created и updated (или modified), если у них тип DATETIME, будут подставляться даты создания и изменения. При создании таблицы надо выбрать значение по умолчанию для этих полей. В документации на Cake 1.2 недавно появилось предупреждение на эту тему, но ктож все время будет документацию перечитывать? :-)

У created и updated значение по-умолчанию должно быть NULL. В общем-то все будет прекрасно работать и со значением “0000-00-00 00:00:00”, которое phpMyAdmin пытается установить самостоятельно, но ровно до того момента, когда появится необходимость добавить несколько записей и, в соответствии с рекомендациями ВЦСПС разработчиков, перед каждым вызовом $Model::save(…) вызывать $Model::create(…).

$Model->create() заполняет $Model::data значениями по-умолчанию для всех полей, а $Model::save() изменяет значения created/updated только если они не определены или равны null.

Бонус

О малоизвестных методах модели в блоге Cakebaker. Для настоящих эстетов есть метод Model::hasAny(), определяющий есть-ли хоть одна запись, удовлетворяющая заданным условиям. На самом деле это просто обертка к Model::findCount(), но смотрится нагляднее.

Популярные сообщения из этого блога

Sitemap для Shop-Script

С недавних пор наш национальный поисковик присоединился к славной компании поисковиков, умеющих обрабатывать файлы sitemap . Наверное, это связано с какими-то общеланетарными амбициями. Как бы то ни было, теперь есть возможность скормить Яндексу файл(ы) sitemap . Я решил, что обрабатывать сайт какой-нибудь сторонней приблудой много дольше, чем просто сгенерировать файлы sitemap с помощью скрипта. Тем более, что у shop-script в общем-то довольно простая структура. Новая версия Shop-Script с ЧПУ пока недоступна, получу — модифицирую скрипт. :-) Скрипт простенький, делает sitemap для aux-страниц — это у shop-script так называются обычные статические html страницы; страниц с категориями. Без разбивки на страницы 1, 2 и т.д. на мой взгляд эти страницы не слишком важны страниц с товарами и обсуждениями товаров Можно запускать из браузера, можно по cron’у. Корневую страницу сайта, страницу с новостями, страницу с формой обратной связи и т.п. надо записать в отдельный файл sitemap ...

Набережные

На бывшей доске почета, а ныне просто небольшой фотовыставке достижений Московского Судостроительного и Судоремонтного Завода (МССЗ) увидел пару интересных фотографий продукции этого завода на фоне набережных Москвы. Вот только сами набережные и годы съемки определить не смог. :) Знатоки подсказывают: первая фотография: Гончарная набережная у м.Таганская ; вторая: Фрунзенская набережная дом 34-32-26 .

Зеленые облака

Сегодня часов около 12 дня бежал по делам рядом со станцией метро Юго-Западная и обратил внимание на странный цвет неба. Поскольку прямо по курсу, километрах в трех-четырех находится железнодорожная станция "Очаково", решил, что там авария какая-нибудь. "Хлор или иприт" - внезапно промелькнула мысль. Странно, уроки НВП я, большей частью, прогуливал... Позже в Интернете прочел, что это сильный ветер поднял в воздух большое количество пыльцы. Сделал фотографию на планшет, убедился, что получилось плохо - цвета почти видно, и, так как торопился, не стал дальше заморачиваться. Вот сейчас еду в метро домой, попробовал немного задрать контраст и насыщенность. Может, получится чего.