在我的laravel应用程序中,我有一个文本类型的帖子“正文”字段,我试图给该字段一个默认值,如“这个sis是博客文章的默认文本,可以随意更改它”,但mysql抛出了一个错误。$table->text('body')->default('This is the default text for a blog post, feel free to change it.');这不起作用...根据文档,BLOB/文本字段不能有默认值,这是非常奇怪的tbh。https://dev.mysql.com/doc/refman/5.7/en/blob.html我想我可以将字段类型从文本更改为字符串,但是afaik字符串不会像字符串类型那样多的字符,我可以肯定的是,我的博客文章将是loooong。我该如何解决这个问题?提前致谢。
3 回答
呼啦一阵风
TA贡献1802条经验 获得超6个赞
您可以使用访问器&突变体
这里有一个为body
设置默认值的例子 它的作用是,每次你的模型要保存在数据库中时,它都会检查值是否为空,然后它设置你的默认值
只需将下面的代码放入你的模型中。
public function setBodyAttribute($value = null)
{
if (null === $value) {
$this->attributes['body'] = 'default value';
}
$this->attributes['body'] = $value;
}
慕村225694
TA贡献1880条经验 获得超4个赞
在mysql中,你不能给出文本默认值。解决 方案:
将其转换为( 一行最多可以包含 255 个字符)
varchar
用代码给出默认值(在创建期间,创建后,默认占位符文本... )
料青山看我应如是
TA贡献1772条经验 获得超8个赞
您可以将其设置为可为空,并且在您的视图中,如果是,则只需为其提供默认文本。$table->text('body')->nullable(true);
NULL
- 3 回答
- 0 关注
- 84 浏览
添加回答
举报
0/150
提交
取消