gpt4 book ai didi

php - SQL 数据库中用户名的默认值

转载 作者:行者123 更新时间:2023-11-29 12:12:14 24 4
gpt4 key购买 nike

我正在编写一个 Laravel 应用程序,为了在 sqlite 中进行测试,您需要为迁移中的所有字段指定 ->nullable() 或 ->default("123")。这让我很困惑,因为我的用户迁移当前如下所示:

public function up() {
Schema::create('users', function($table) {
$table->increments('id');
$table->integer('role_id');
$table->string('username')->unique();
$table->string('password');
$table->string('name');
$table->string('email');
$table->integer('max_locations');
$table->string('auth_token');
$table->string('remember_token', 100);
$table->timestamps();
});
}

其中许多内容既不添加 ->default("123") 也不添加 ->nullable() 是没有意义的。用户名是一个很好的例子,我不能将 null 作为数据库中的用户名,但如果我设置默认值也不起作用。没有添加用户名的第二个用户将采用默认用户名,并且由于用户名必须是唯一的,因此会引发异常。

目前我没有指定任何内容,SQL 通过为所有这些字段提供默认值“None”来解决这个问题。可以在这里以某种方式添加吗?如果不是,我的用户名应该有默认值还是可以为空?

最佳答案

NOT NULL 列不能具有默认 NULL 值。如果您不希望列可以为空,只需指定默认值,如下所示:

$table->string('username')->unique()->default('');

在您的验证中,当然您不会允许空值,所以这是可以的。

关于php - SQL 数据库中用户名的默认值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30439851/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com