Laravel SQLite 字段的默认值
Posted
技术标签:
【中文标题】Laravel SQLite 字段的默认值【英文标题】:Laravel SQLite Default Value to a field 【发布时间】:2018-07-02 14:13:37 【问题描述】:好的,我遇到了这个问题:
我在我的迁移中设置了一个带有默认值的布尔属性:
$table->boolean('is_public')->default(1);
它在我的初始数据库 mysql 上运行良好。我迁移了数据库并手动插入,它被插入为 true。
但问题是,当我运行在内存数据库中配置了 sqlite
的测试时,没有添加默认值。所以这个断言:
$this->assertEquals($league->is_public, 1);
...在不应该的时候失败了。
有人知道我错过了什么吗?我是否必须添加更多内容才能将默认值添加到数据库中,或者这是某种sqlite
问题?
【问题讨论】:
dd($league->is_public)
显示了什么?
它在我的测试中显示null
;
dd($league)
显示了什么?
显示创建的联赛。联盟是使用名称和其他必需属性创建的,没有默认值。
所以,它显示了League
对象,其中is_public
是null
?请说明您在测试中究竟是如何创建对象的。
【参考方案1】:
将您的迁移更改为此。
$table->boolean('is_public',true);
【讨论】:
boolean()
方法没有第二个参数。
我不确定它不会,但如果它不只是将 '1' 更改为 'true' 并且它应该可以工作以上是关于Laravel SQLite 字段的默认值的主要内容,如果未能解决你的问题,请参考以下文章