OctoberCMS (Laravel) при сохранении модели обновляется поле created_at

Столкнулся с неприятной проблемой. Когда сохраняю в админке любую запись, обновляется поле created_at вместе с updated_at, хотя должно обновиться только updated_at.

Проблема оказалась банальная — в дополнительном свойстве поля created_at в базе MySQL есть атрибут on update CURRENT_TIMESTAMP.

Убираем это свойство, решаем проблему.

Timeweb.com ошибка при composer update (memory-limit error)

При попытке обновить проект компосером, вылетает ошибка «PHP Fatal Error: Allowed memory size of 268435456 bytes exhausted«.

Лечится довольно просто:

/usr/local/bin/php -d memory_limit=1024M /usr/local/bin/composer update

Но ещё лучше создать альяс, чтобы писать коротко «composer update»:

echo -e "alias composer='/usr/local/bin/php -d memory_limit=1024M /usr/local/bin/composer'\nalias php='/usr/local/bin/php -d memory_limit=1024M'" > .bash_profile

Затем выполним команду: source .bash_profile и всё чики-пуки 🙂

Ошибка формата даты {0}май|{1}мая. OctoberCMS

Вывожу дату, привожу её в нужный формат:

{{ question.created_at|date('d M Y') }}

Но вместо ожидаемого «10 май 2019», получаю «10 {0}май|{1}мая 2019».

Это баг jenssegers, тикет есть, но решать пока не торопятся — https://github.com/jenssegers/date/issues/272 🙁

Как вариант, использую вместо «M» «F», помогает, но месяц теперь склоняется:

{{ question.created_at|date('d F Y') }}

Заголовки страниц (title) в October CMS

Раньше я делал заголовки как?
В partial ‘_head’, там где у меня всякие meta, подключаются стили и т.д., я писал как-то так:

<title>{{ this.page.title }} — ООО «Котлетки Пирожки»</title>

Но это же неправильно!
Главные страницы сайта выглядят с убогим title: Главная — ООО «Котлетки Пирожки». Из админки не поправить, только в шаблоне руками. Жопа 🙁

Надо делать красиво!

Читать далее…

Полнотекстовый поиск по MySQL в October CMS

Понадобилось мне искать строку сразу в нескольких полях. Думал-думал и решил использовать полнотекстовый поиск MySQL. Довольно простая, но хитрая штука.

При создании таблицы в бд, надо добавить строку FULLTEXT (title,body) (где title,body — поля для поиска):

CREATE TABLE articles (
      id INT UNSIGNED AUTO_INCREMENT NOT NULL PRIMARY KEY,
      title VARCHAR(200),
      body TEXT,
      FULLTEXT (title,body)
    ) ENGINE=InnoDB;

Если же таблица уже создана, то выполняем запрос в MySQL:

CREATE FULLTEXT INDEX title_body ON articles(title,body)
Читать далее…