Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/laravel/10.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
通过FormRequest更新时出现验证错误(Laravel 6)_Laravel_Validation - Fatal编程技术网

通过FormRequest更新时出现验证错误(Laravel 6)

通过FormRequest更新时出现验证错误(Laravel 6),laravel,validation,Laravel,Validation,我为我的大厅创建了一个FormRequest,但当我尝试更新slug时,我的标题显示验证错误“您已经输入了大厅名称一次”。 这是我的密码: class AdminHall extends FormRequest { public function authorize() { return true; } public function rules() { return [ 'title' =>

我为我的大厅创建了一个FormRequest,但当我尝试更新slug时,我的标题显示验证错误“您已经输入了大厅名称一次”。 这是我的密码:

class AdminHall extends FormRequest
{
    public function authorize()
    {
        return true;
    }
    public function rules()
    {
        return [
            'title' => 'required|unique:halls,title|min:2',
            'slug' => 'required|alpha_dash|unique:halls,slug|min:2',
        ];
    }
    public function messages()
    {
        return [
            'title.required' => 'Entered the Hall name.',
            'title.unique' => 'You have enter the Hall name once.',
            'title.min' => 'At least 2 char!',
            'slug.alpha_dash' => 'Use dash instead space.',
            'slug.unique' => 'URL used once.',
            'slug.min' => 'At least 2 char!',
        ];
    }
}
我的控制器:

public function update(AdminHall $request, $id)
    {
        $hall = Hall::find($id);
        $hall->title = $request->title;
        $hall->content = $request->content;
        $hall->address = $request->address;
        $hall->tell = $request->tell;
        $hall->latitude = $request->latitude;
        $hall->longitude = $request->longitude;
        $hall->slug = $request->slug;
        $hall->save();
        Session::flash('success', 'Saved!');
        return redirect()->route('hall.index');
    }

如何修复它?

在使用ID进行更新时,必须将特定模型从唯一验证规则中排除

'title'=>'必需|唯一:大厅,标题'。$this->hall->id.|最小:2',
希望这有帮助

我像这样修复它:

public function rules()
{
    $hallId = request()->input('id');

    return [
        'title' => ['required', 'min:2', Rule::unique('halls')->ignore($hallId)],
        'slug' => 'required|alpha_dash|unique:halls,slug|min:2',
    ];
}
public function rules()
{
    $hall = Hall::where('id', '=', $this->hall)->first();

    return [
        'title' => ['required', 'min:2', Rule::unique('halls')->ignore($hall->id)],
        'slug' => ['required', 'min:2', 'alpha_dash', Rule::unique('halls')->ignore($hall->id)],
    ];
}

我尝试了,但收到了一个错误:尝试获取非对象的属性“id”。我将其更改为
$this->id
,仍然显示验证错误仍然标题验证错误显示“您已输入了一次大厅名称”