首页 > 解决方案 > 如何使用 UUID 验证唯一密钥?

问题描述

我有验证类,我试图确保代码列基于 UUID 是唯一的。

class ProjectRequest extends FormRequest
{
    public function authorize()
    {
        return true;
    }

    public function rules()
    {
        $uuid = $this->project ?? ' ';

        return [

            'code' => [
                'required', 'min:2',
                'max:255', "unique:common_projects,code,{$uuid},uuid"
            ],
            'description' => ['required', 'min:3', 'max:9999'],
            'coordinator_id' => ['nullable'],
        ];
    }
}

路线

Route::apiResource('/projects',ProjectController::class);

尝试创建新项目时,我收到以下消息。

“消息”:“SQLSTATE [22P02]:无效的文本表示:7 错误:uuid 类型的输入语法无效:”(SQL:从“common_projects”中选择计数(*)作为聚合,其中“代码”= 测试和“uuid” <> )", "异常": "Illuminate\Database\QueryException",

我正在使用 Postgres 数据库。

标签: laraveluuidlaravel-formrequest

解决方案


推荐阅读