【问题标题】:Laravel - Unique Request Rules allows duplicateLaravel - 独特的请求规则允许重复
【发布时间】:2020-07-01 07:19:15
【问题描述】:

在 Laravel-5.8 中,我为多个字段应用了规则请求,如下所示:

public function rules() 
{
    return [
        'goal_type_id'  => [
            'required',
            Rule::unique('appraisal_goals')->where(function ($query) {
                return $query
                    ->where('employee_id', 1)
                    ->where('appraisal_identity_id', 1);
                })
        ],                  
        'appraisal_doc'  => 'nullable|mimes:doc,docx,xls,xlsx,ppt,pptx,pdf,jpg,jpeg,bmp,png,|max:5000',
        'weighted_score' => 'required|numeric|min:0|max:500',            
    ];
} 

这是mysql查询:

ALTER TABLE appraisal_goals
ADD CONSTRAINT appraisal_goals_uniq1 UNIQUE KEY(goal_type_id,appraisal_identity_id,employee_id);

这是为了创建。从代码来看,goal_type_id、employee_id 和appearance_identity_id 的组合是唯一的。

当我在创建刀片中点击提交时,它允许重复。

  1. 我该如何解决这个问题?

  2. 另外,我如何写一个更新?

请注意我的路线是评估目标

谢谢

【问题讨论】:

    标签: laravel rules


    【解决方案1】:

    试试这个代码更新

    public function rules() 
    {
        $appraisal_goal_id = 'take your appraisal_goals id here from request';
        return [
            'goal_type_id'   => [
                'required',
                Rule::unique('appraisal_goals')->ignore($appraisal_goal_id, 'id')->where(function ($query) {
                    return $query
                        ->where('employee_id', 1)
                        ->where('appraisal_identity_id', 1);
                })
            ],
            'appraisal_doc'  => 'nullable|mimes:doc,docx,xls,xlsx,ppt,pptx,pdf,jpg,jpeg,bmp,png,|max:5000',
            'weighted_score' => 'required|numeric|min:0|max:500',          
     ];
    } 
    

    【讨论】:

    • 创建怎么样
    • 你所做的对你的创作来说是可以的。对于我提供的更新,您需要另一条规则。我认为最好为创建和更新制定单独的规则
    猜你喜欢
    • 2016-03-25
    • 1970-01-01
    • 2019-04-10
    • 1970-01-01
    • 2018-04-24
    • 1970-01-01
    • 1970-01-01
    • 2017-01-10
    • 1970-01-01
    相关资源
    最近更新 更多