加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 大数据 > 正文

php – 验证Laravel更新中的独特插件5

发布时间:2020-12-14 19:50:18 所属栏目:大数据 来源:网络整理
导读:我目前有一个模型,它有一个文本字段和一个字段. 我验证了我的表单请求类中的slug是唯一的: public function rules(){ return [ 'name' = 'required|min:3','slug' = 'required|alpha_dash|unique:questions' ];} 这在创建时工作正常,并正确地拒绝创建重复的
我目前有一个模型,它有一个文本字段和一个字段.

我验证了我的表单请求类中的slug是唯一的:

public function rules()
{
    return [
        'name' => 'required|min:3','slug' => 'required|alpha_dash|unique:questions'
    ];
}

这在创建时工作正常,并正确地拒绝创建重复的s..但是在我的更新方法中,它不会让我保存一个记录,因为slug已经存在.当然,这个s子确实存在,但它存在于被编辑的记录上,所以我想继续允许它被保存.然而,它不应该被改变为另一个记录的s..

这是我更新ArticlesController方法的样子:

public function update(Article $article,ArticleRequest $request)
{
    $article->update($request->all());

    return redirect('articles');
}

有没有办法使这项工作在L5?

在 unique rule中,您可以指定要忽略的ID.

您可以创建2个单独的请求(一个用于创建,一个用于更新),但是您也可以通过这种方式来检查是否设置了(我认为您的更新url看起来像/ questions / 2):

public function rules()
{
    $rules = [
        'name' => 'required|min:3','slug' => ['required','alpha_dash']
    ];

    $rule = 'unique:questions';

    $segments = $this->segments();
    $id = intval(end($segments));
    if ($id != 0) {  
         $rule .= ',slug,' . $id;
    }
    $rules['slug'][] = $rule;

    return $rules;
    }
}

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读