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