Тема: Ограничение длинны поля servername таблицы images

Собственно сабж, `servername` VARCHAR(25) - почему такое ограничение? Переносил изображения с стороннего движка и наткнулся на такое ограничение. Поставил костыль на 50 символов.

Повысить оценку Понизить оценку

2

Re: Ограничение длинны поля servername таблицы images

servername - это же внутреннее поле нашей системы, мы туда больше 25 символов никогда не записываем. В целях экономии пространства, которое будет занимать индекс MySQL и соответственно оптимизации, установлено данное ограничение.

Если вам необходим больший объем данного поля, вы все правильно сделали, что увеличили его индивидуально для себя.

Это можно сделать:
1. просто в базе, тогда это будет до первого обновления модуля "Блок фотографий",
2. можно сделать с помощью дополнительного модуля (рекомендуемое решение), и обработки в нем события инициализации ORM объекта Photo\Model\Orm\Image

Примерно таким обработчиком (handlers.inc.php):

<?php
namespace ВАШ_МОДУЛЬ\Config;

class Handlers extends \RS\Event\HandlerAbstract
{
    function init()
    {
        $this
            ->bind('orm.init.photo-image');
    }

    /**
    * Модифицируем ORM объект - "изображение"
    * 
    * @param \Photo\Model\Orm\Image $image - объект "изображение"
    */
    public static function ormInitPhotoImage(\Photo\Model\Orm\Image $image)
    {
        $image->__servername->setMaxLength(255);
    }
}

Не забудьте переустановить модуль "Блок фотографий" (ссылка в настройках модуля), после активации вашего стороннего модуля. Система в этом случае сама изменит длину поля в базе.

3. Можно сделать с помощью создания image.my.inc.php, у которого изменена длина поля в стандартном описании полей. (не рекомендуемый способ)

Повысить оценку Понизить оценку