1

我在请求文件夹上创建了一个验证请求文件。它在新插件中工作正常。但是当我更新时,它也不起作用,我传递了唯一的 $id 但不起作用。

一个。资源控制器更新方法

public function update(KlassNameRequest $request, $id)
{
    $validated = $request->validated();
    KlassName::where('id', $id)->update($validated);
}

湾。验证码

public function rules()
{
    return [
        'name'          => 'required|unique:klass_names|max:128,' . $this->id,
        'ref'           => 'required|unique:klass_names|numeric|between:1,999,' . $this->id,
        'seat_quota'    => 'required|numeric|between:1,9999',
        'division'      => 'required',
        'semester'      => 'required',
    ];
}

当我更新时,此消息显示我

当我更新时,此消息显示我

4

3 回答 3

0

返回 [ 'name' => 'required|unique:klass_names,' 。$this->id.'|max:128', 'ref' => 'required|unique:klass_names,' 。$this->id.'|numeric|between:1,999', 'seat_quota' => 'required|numeric|between:1,9999', 'division' => 'required', '学期' => 'required', ];

于 2022-02-20T16:02:03.353 回答
0

试试这个

    'name' => ['required','max:128',Rule::unique('klass_names')->where(function ($query) {
    return $query->where('name', $this->name);
})],

'ref' => ['required','max:128',Rule::unique('klass_names')->where(function ($query) {
        return $query->where('ref', $this-> ref);
    })],

希望它能解决问题

于 2022-02-20T14:05:42.920 回答
0

我以这种方式解决了我的问题-

一个。为 $request 方法添加额外的输入隐藏字段传递 id。因为我的路线是资源组路线-

<form action="{{ route('adm.kls.update', $kls->id) }}" method="post">
    @csrf
    @method('PUT')

    <input type="hidden" name="id" value="{{ $kls->id }}">
</form>

湾。验证代码中的一些编辑。

public function rules() {
  return [
    'name' => 'required|max:128|unique:klass_names,name,' . $this->id,
    'ref' => 'required|numeric|between:1,999|unique:klass_names,ref,' . $this->id,
    'seat_quota' => 'required|numeric|between:1,9999',
  ];
}

完毕。

于 2022-02-21T20:12:43.067 回答