我有两个字段需要增加字符限制。我仔细阅读了文档,令我惊讶的是我找不到它的选择。有可能吗?如果没有,我该如何解决这个问题?
我可以删除列并使用正确的属性重新创建它,但我不想丢失数据库中的任何数据。
答案 0 :(得分:26)
对于Laravel 4
DB::update('ALTER TABLE `my_table` MODIFY `my_column` VARCHAR(<new length>)');
答案 1 :(得分:22)
使用Raw Queries:
/**
* Make changes to the database.
*
* @return void
*/
public function up()
{
DB::query('ALTER TABLE mytable MODIFY mycolumn VARCHAR(new-length)');
}
/**
* Revert the changes to the database.
*
* @return void
*/
public function down()
{
DB::query('ALTER TABL mytable MODIFY mycolumn VARCHAR(old-length)');
}
替换mytable
,mycolumn
,new-length
和old-length
。
对于Laravel 5+,将DB::query
替换为DB::statement
。
答案 2 :(得分:17)
对于Laravel 5:
Schema::table('users', function($table)
{
$table->string('name', 50)->change();
});
检查docs以获取更多信息。
答案 3 :(得分:1)
如果名称是系统的关键字,请使用``作为列名。否则,您将收到“语法错误或访问冲突。”
DB::query("alter table MYTABLE modify `MYCOLUMN` varchar(new-length)");