首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >检查unique - laravel

检查unique - laravel
EN

Stack Overflow用户
提问于 2018-10-04 03:34:07
回答 2查看 98关注 0票数 1

当用户注册时,每个用户都会收到一个存储在数据库中的七位数代码。每个代码都必须是唯一的,并且不能再次创建。如何确保存储的每个代码都是唯一的,并且在创建现有代码时不会出现错误消息?

函数

代码语言:javascript
复制
 $randomstring = substr(str_shuffle("0123456789abcdefghijklmnopqrstuvwxyz"), 0, 7);

表格

代码语言:javascript
复制
Schema::create('invites', function (Blueprint $table) {
            $table->increments('id');
            $table->integer('user_id')->unsigned()->nullable();
            $table->foreign('user_id')->references('id')->on('users')->onDelete('cascade');
            $table->text('greeting')->nullable();
            $table->string('url')->unique();
            $table->timestamps();
        });
EN

回答 2

Stack Overflow用户

发布于 2018-10-04 03:40:40

我会在while循环中使用doesntExist

代码语言:javascript
复制
while (true) {
    $randomstring = substr(str_shuffle("0123456789abcdefghijklmnopqrstuvwxyz"), 0, 7);
    if (Invite::where('code', $randomstring)->doesntExist()) {
        Invite::create([
            ...
            'code' => $randomstring,
            ...
        ]);
        break;
    }
}
票数 2
EN

Stack Overflow用户

发布于 2018-10-04 03:38:21

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/52634442

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档