Php Laravel-不带nullable的无符号
我使用的是Laravel 5.3,我想在表迁移中定义一个字段为可为null以及无符号。由于两者都是索引修饰符,我可以在串联中使用它们吗?比如:Php Laravel-不带nullable的无符号,php,laravel,laravel-5,migration,Php,Laravel,Laravel 5,Migration,我使用的是Laravel 5.3,我想在表迁移中定义一个字段为可为null以及无符号。由于两者都是索引修饰符,我可以在串联中使用它们吗?比如: $table->integer('some_field')->unsigned()->nullable(); 如果在laravel文档或其他地方有此类修改,请提供一些参考 请注意,我想将up()函数中的字段定义为无符号和可空。我不想要具有down()功能的解决方案,例如: public function up() {
$table->integer('some_field')->unsigned()->nullable();
如果在laravel文档或其他地方有此类修改,请提供一些参考
请注意,我想将up()
函数中的字段定义为无符号和可空。我不想要具有down()
功能的解决方案,例如:
public function up()
{
Schema::create('ex', function (Blueprint $table) {
$table->integer('some_field')->unsigned();
});
}
public function down()
{
DB::statement('ALTER TABLE ex MODIFY `some_field` integer NOT NULL;');
}
提前谢谢 你可以。Laravel允许很多方法链接。每个列方法都定义为返回相同的
Blueprint
对象,因此您可以轻松地对其调用另一个方法。这意味着您甚至可以:
Schema::create('ex', function (Blueprint $table) {
$table->integer('some_field')->unsigned()->default(10);
});
一切都会好的:)
有关更多信息,请参阅(请参阅“列修饰符”部分)。您可以执行以下操作
Schema::create('ex', function (Blueprint $table) {
$table->integer('some_field')->unsigned()->nullable();
});
虽然这个问题已经得到了回答。我还选择了公认的答案,确认使用:
$table->integer('some_field')->unsigned()->nullable();
这是对的
尽管我列出了另一种方法:
$table->integer('some_field')->unsigned();
$table->integer('some_field')->nullable()->change();
参考:在laravel 8中。*
Schema::table('table_name', function (Blueprint $table) {
$table->unsignedInteger('column_name')->nullable();
});
不,我没有,我现在也不能,因为我不能创建测试环境是出于某种原因,所以我希望有人能肯定知道。尽管很奇怪。我知道我们可以同时使用列类型和列修饰符,但很高兴知道索引修饰符也可以连接在一起。谢谢你的回答+1并接受!
first()
在你的链中做什么?谢谢@Adam。抢手货我不知道我在想什么。谢谢你的帮助+1.正确。我认为change
方法适用于您已经运行了旧的迁移,并且不想刷新它们的情况。事实上,它是这样做的。主要用于down()
函数,但它仍然是一种替代方法。