忽略数据透视表上的复合键

时间:2019-07-17 07:16:51

标签: laravel rules

我正在尝试在请求(UpdateAssociafamiglie)中验证组合密钥。

如何忽略2个字段?

我的数据透视表有2个字段(famiglia_id,info_id),当更新记录时,出现错误提示Costcostt Violation(重复记录)。

我知道如何仅使用1个字段就忽略.........如何在一击中忽略famiglia_id和info_id?

谢谢;)

1 个答案:

答案 0 :(得分:0)

这是控制器中的方法

    public function updateInfoTecnica(UpdateAssociafamiglia $request)
    {
        $famiglia = Famiglia::find($request->input('famiglia'));
        $info_id = $request->input('info');

        $famiglia->info()->attach([$info_id => [
            'valore' => $request->input('valore')
            ]
        ]);

        return redirect('famiglie/' . $famiglia->id)->with('ok_message', 'Info Tecnica modificata con Successo');
    }

这是一个请求(但不起作用...)

public function rules()
    {
        return [
            'info' => [
                'required',
                Rule::unique('famiglia_info','info_id')
                    ->ignore($this->famiglia, 'famiglia')
                    ->where(function ($query) {
                        $query->where('famiglia_id', $this->request->get('famiglia'));
                })
            ],
            'valore' => 'required'
        ];
    }