php - 在 Laravel 5 中更新时验证唯一的 Slug

标签 php laravel laravel-5 laravel-validation laravel-request

我目前有一个包含文本字段和 slug 字段的模型。

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

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

这在创建时效果很好,并且正确地拒绝创建重复的段。但是,在我的更新方法中,它不会让我保存记录,因为 slug 已经存在。当然,slug确实存在,但它存在于正在编辑的记录中,所以我想继续允许它被保存。但是,它不应该能够更改为另一条记录上的段。

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

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

    return redirect('articles');
}

有办法在 L5 中实现此功能吗?

最佳答案

尝试修改您的规则,如下所示(在表单请求类中):

public function rules()
{
    return [
      'name'  => 'required,min:3',
      'slug'  => 'required|alpha_dash|unique:categories,slug,'.$this->id')
    ];
}

这对我有用。

关于php - 在 Laravel 5 中更新时验证唯一的 Slug,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28662283/

相关文章:

laravel - 从前 100 行中随机抽取 10 行

php - 在在线主机中将 NGINX 重写为 Laravel 5

php - 拉拉维尔 5 : Login password doesn't match with saved one

php - 将 sql 变量从 INNER JOIN SQL 查询传递给 PHP 脚本

php - Wordpress 一直给我以下错误 : Warning: preg_match()

php - 如何在 PHP 中使用 INNER JOIN 显示来自 2 个不同表的数据?

php - Laravel 5.2 redirect()->back()->withErrors $errors 为空

php - 如何解决 Laravel Composer 问题 - 您的需求无法解析为一组可安装的软件包

php - Laravel Eloquent 查询数据透视表

javascript - laravel中使用ajax jquery将数据添加到数据库