如何将实体ID传递给Laravel 5.5上的表单请求中的唯一验证?

时间:2018-02-24 22:14:03

标签: php laravel validation laravel-5 laravel-5.5

我定义了以下路线:

Route::put('/{organisationId}', 'OrganisationController@update');

我有更新请求的以下FormRequest

<?php

namespace App\Http\Requests\Organisation;

use Illuminate\Foundation\Http\FormRequest;

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

    public function rules()
    {
        return [
            'required|min:3|max:60|unique:organisations,name,' . $this->get('organisationId')
        ];
    }
}

我试图在我的控制器中使用它:

public function update($organisationId, UpdateOrganisationRequest $request)
{
    $organisation = $this->organisationRepository->byId($organisationId);

    if (!$organisation) {
        return $this->error('Organisation not found.', $this::Bad_Request);
    }

    $this->organisationRepository->update($organisation, $request->validated());

    return $this->success(
        fractal($organisation, new OrganisationTransformer())
    );
}

这似乎会触发唯一的验证错误,因为它似乎不会排除我尝试更新的ID。

为什么这不起作用的任何想法?

在使用FormRequest之前,这是我实现上述相同功能的方式,并且工作正常:

https://pastebin.com/raw/CDEg6qLt

我能够使用相同的名称更新同一个组织,并且唯一的验证规则没有触发验证异常。

0 个答案:

没有答案