首页 > 解决方案 > 如何在 laravel Lighthouse 中更新内容时添加 @unique 验证?

问题描述

我有用于 Graph QL 的带有 Lighthouse 包的 Laravel 8,

我为“name”属性添加了@unique 指令,但是在更新任何记录时我无法应用它,因为我想跳过当前更新的记录以检查唯一性,

以下是更新的架构

updateRole(id: ID, name: String!@trim @rules(apply : ["unique:roles,name"]), isActive: Int!): 角色!@更新

当我使用规则手动添加“id”时,它工作正常,但我不知道如何使其成为动态规则。

标签: phplaravelgraphqllighthouselaravel-lighthouse

解决方案


传递您从数据库接收的 ID,以使用类似的验证规则更新数据。

public function update(Request $request, Model $ModelVarible)
{
    $request->validate(["name"=> "unique:tablename,fieldname,{$ModelVarible->id},id"]);
    return redirect('route name');
}

推荐阅读