laravel 验证规则 修改和添加 判断是否是修改还是添加



 /**
     * 自定义验证规则rules
     *
     * @return array
     */
    public function rules()
    {
        return [
            'name'       => 'unique:products,name',
            'sort' => 'required|',
            'body'     => 'required|min:20',
            'price'  => 'required',
            'thumb'       => 'required',
            'status'      => 'boolean',
        ];

        return $rules;
    }

在这里验证了 name 是否重复, 在添加产品的时候做验证

但在修改产品的时候 也用到了该验证,想知道,修改产品的 产品名称 不变 会提醒产品名称重复了,

这里可以做判断吗 ?

求大神指导一下啊

laravel php laravel5.1

咸鱼人蒋某 8 years, 9 months ago

 php


 /**
     * 自定义验证规则rules
     *
     * @return array
     */
    public function rules()
    {
        $rules = [
             'sort' => 'required|',
            'body'     => 'required|min:20',
            'price'  => 'required',
            'thumb'       => 'required',
            'status'      => 'boolean',
        ];

        //根据RESTful请求的方法来判断是新建还是更新,如果是PUT请求的话
        if($this->method() === "PUT"){
            // 更新产品信息的时候,你在后面可以限制一个id,这个时候如果name刚好在这个id里就不会提醒产品重复了
            // $product = ……
            $rules['name'] = 'unique:products,name,id,'.$product->id;
        }else{

            $rules['name'] = 'unique:products,name';
        }

        return $rules;
    }

可以改成这样。

月夜.巫女 answered 8 years, 9 months ago

Your Answer