如何在laravel Lighthouse中更新内容时添加@unique验证?

问题描述

我有带Laravel 8和Graph QL的Lighthouse软件包,

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

下面是更新模式

updateRole(id:ID,name:String!@trim @rules(apply:[“ unique:roles,name”]),isActive:Int!):角色! @update

当我手动添加带有规则的“ id”时,它可以正常工作,但是我不知道如何使它成为动态规则。

解决方法

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

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