Yii2框架中MySQL默认空字符串在表单字段显示为两个单引号的问题求助
Yii2框架中MySQL默认空字符串在表单字段显示为两个单引号的问题求助
大家好,我碰到了一个棘手的问题,想请教下有没有解决办法:
我在MySQL数据库里有一张表,其中某个字段的定义是默认空字符串,SQL语句如下:
`key` TINYTEXT NOT NULL DEFAULT '',
对应的Yii2模型里,我也给这个字段设置了默认值规则:
[['key'], 'default', 'value' => ''],
之后我用这个字段生成表单的文本域,代码是这样的:
<?= $form->field($model, 'key')->textarea(['rows' => 6]) ?>
结果奇怪的事情发生了——表单里的这个文本域默认显示两个单引号,效果如下:
而且所有设置了默认空字符串的字段都出现了这个问题。
我的数据库连接配置是:
return [ 'class' => 'yii\db\Connection', 'dsn' => 'mysql:host=localhost;dbname=xxx', 'username' => 'xxx', 'password' => 'xxx', 'charset' => 'utf8', ];
我自己排查了一下:在渲染表单前打印$model->key的值,显示的就是两个单引号;跟踪到ActiveRecord::loadDefaultValues方法里打印,发现问题在这里就已经出现了:
目前我只想到一个临时的解决方法——不在模型和数据库里设置默认值,而是在模型代码里手动赋值空字符串,但这并不是理想的方案,因为还有其他系统在使用这个数据库,它们依赖这些默认值设置。
有没有大佬知道怎么解决这个问题呀?
备注:内容来源于stack exchange,提问作者Hvprvtr
相关产品推荐
相关产品推荐

