保存在cakephp 3.6中之前截断数据

时间:2018-11-06 19:55:09

标签: cakephp cakephp-3.0

我的情况如下: 我有一个表(tbl_a)包含长度为128(名称VARCHAR(128))的字段“名称”。 当用户在Web应用程序上插入数据时,用户放置了128个以上的字符,但数据保存为128个字符。 在这种情况下,在cakephp 3.6中进行配置的任何方法是什么? 谢谢您的帮助。

1 个答案:

答案 0 :(得分:0)

正如一些评论中已经提到的那样,数据库通常会截断文本而不会抱怨,从而使保存正常进行。

如果希望独立于数据库进行此操作,则可以在模型的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
    }
}