【问题标题】:Ignore composite key on Pivot Table忽略数据透视表上的复合键
【发布时间】:2019-07-17 07:16:51
【问题描述】:

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

如何忽略 2 个字段?

我的数据透视表有 2 个字段(famiglia_id、info_id),当更新记录时,我收到一个违反约束条件的错误(重复记录)。

我知道如何使用 ignore 但仅用于 1 个字段...如何一次性忽略 famiglia_id 和 info_id?

谢谢 ;)

【问题讨论】:

  • 你能分享一些用于更新数据透视表的代码吗??

标签: laravel rules


【解决方案1】:

这是控制器中的方法

    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'
        ];
    }

【讨论】:

    猜你喜欢
    • 2017-05-11
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多