обрезать данные перед сохранением в cakephp 3.6 - PullRequest
0 голосов
/ 06 ноября 2018

Мой сценарий, как показано ниже: У меня есть таблица (tbl_a) содержит поле 'имя' с длиной 128 (имя VARCHAR (128)). когда пользователь вставляет данные в веб-приложение, пользователь помещает более 128 символов, но данные были сохранены с 128 символами. Есть ли способ настроить в CakePHP 3.6 в этом случае? Спасибо за вашу помощь.

1 Ответ

0 голосов
/ 12 ноября 2018

Как уже упоминалось в некоторых комментариях, база данных, как правило, обрезает текст без жалоб, в результате чего сохранение происходит в обычном режиме.

Если вы хотите, чтобы это происходило независимо от базы данных, вы можете написать это в функции beforeMarshal() модели:

public function beforeMarshal(Event $event, ArrayObject $data, ArrayObject $options)
{
    if (isset($data['username']) && strlen($data['username']) > 128) {
        $data['username'] = substr($data['username'], 0, 128); // Truncate
    }
}
...