【发布时间】:2018-09-29 11:27:02
【问题描述】:
我正在尝试使用 str_random(60) 和 unique() 函数在我的数据库中为用户的 api_token 生成一个字符串,但看起来我做错了。当我使用 db:seed 两个虚拟用户播种时,他们应该有不同的 api_token(s)。这是我的迁移文件
$table->increments('id');
$table->string('name');
$table->string('email');
$table->string('api_token')->default(str_random(60))->unique();
$table->string('password');
$table->string('remember_token')->nullable();
$table->timestamps();
如果我删除 unique() 函数,用户将拥有相同的 api_token,如果我放回 unique(),我将遇到错误,因为他们将拥有相同的 api_token。有人可以帮我解决这个独特的 api_token 案例吗?
【问题讨论】:
-
您是在循环运行
db:seed两次还是只运行一次? -
token需要在seeder或者factory中设置,而不是migration中。
-
你可以使用
Str::Random这是 laravel 的illuminate和根据它的 phpdoc 它是Generate a more truly "random" alpha-numeric string.
标签: php laravel laravel-artisan