Laravel Schema Builder 更新默认值
Posted
技术标签:
【中文标题】Laravel Schema Builder 更新默认值【英文标题】:Laravel Schema Builder Update Default Value 【发布时间】:2013-10-19 14:51:57 【问题描述】:尝试设置迁移,使我已经存在的“活动”字段具有默认值“1”。
我在文档中看到我可以使用类似的东西:
$table->integer('active')->default(1);
但是我在迁移中尝试了这个但没有成功,我猜是因为该字段已经存在。有没有办法使用架构构建器正确管理现有字段?
我目前的迁移:
public function up()
Schema::table('scores', function($table)
$table->integer('active')->default(1);
);
编辑:
从我目前所阅读的内容来看,查询生成器无法做到这一点。但是当我尝试运行原始查询时:
DB::query("ALTER TABLE `scores` CHANGE COLUMN `active` `active` int(11) NOT NULL DEFAULT '1';");
我收到“方法'查询'不存在错误”,所以我猜这个方法名称已更改我只是找不到更改为的内容
【问题讨论】:
【参考方案1】:看起来 DB::query() 已更改为 DB::statement()
这成功了:
DB::statement("ALTER TABLE `scores` CHANGE COLUMN `active` `active` int(11) NOT NULL DEFAULT '1';");
【讨论】:
由于您没有更改列的名称,因此您可以使用 MODIFY COLUMN 代替 CHANGE COLUMN 并省略语句中的第二个活动。新语句如下: DB::statement("ALTER TABLE scores MODIFY COLUMN active int(11) NOT NULL DEFAULT '1';");` ***.com/a/14767467/788445以上是关于Laravel Schema Builder 更新默认值的主要内容,如果未能解决你的问题,请参考以下文章
Laravel migrate:refresh 在 Composer 更新后不起作用
更新到 Laravel 5.3 后播种时调用未定义的方法 Illuminate\Database\Query\Builder::lists()
Laravel:使用 Query Builder 或 Eloquent ORM 时在每次插入/更新时执行一些任务
在更新到Laravel 5.3后播种时调用未定义的方法Illuminate Database Query Builder :: lists()