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

前端之家收集整理的这篇文章主要介绍了php – 验证Laravel更新中的独特插件5前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我目前有一个模型,它有一个文本字段和一个字段.

我验证了我的表单请求类中的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;
    }
}
原文链接:https://www.f2er.com/laravel/139640.html

猜你在找的Laravel相关文章