为了账号安全,请及时绑定邮箱和手机立即绑定

无法在拉拉维尔应用程序 (mysql) 中为数据库文本字段提供默认值

无法在拉拉维尔应用程序 (mysql) 中为数据库文本字段提供默认值

PHP
哔哔one 2022-09-25 21:02:19
在我的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;

    }


查看完整回答
反对 回复 2022-09-25
?
慕村225694

TA贡献1880条经验 获得超4个赞

在mysql中,你不能给出文本默认值。解决 方案:

  • 将其转换为( 一行最多可以包含 255 个字符)varchar

  • 用代码给出默认值(在创建期间,创建后,默认占位符文本... )


查看完整回答
反对 回复 2022-09-25
?
料青山看我应如是

TA贡献1772条经验 获得超8个赞

您可以将其设置为可为空,并且在您的视图中,如果是,则只需为其提供默认文本。$table->text('body')->nullable(true);NULL



查看完整回答
反对 回复 2022-09-25
  • 3 回答
  • 0 关注
  • 84 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信