Laravel 4 自定义唯一验证多列

Posted

技术标签:

【中文标题】Laravel 4 自定义唯一验证多列【英文标题】:Laravel 4 custom unique validation multiple columns 【发布时间】:2014-12-16 15:55:44 【问题描述】:

我遇到了关于验证某个用户创建的博客文章的唯一永久链接的问题。架构:

users: `id`, `username`

posts: `id`, `title`, `permalink`

users_posts: `id`, `user_id`, `post_id`

现在,当用户提交新的博客文章时,他必须为他的文章选择一个唯一的永久链接,但这个永久链接应该只对他是唯一的(这意味着其他用户可以使用该永久链接,只要该永久链接在其中是唯一的用户的帖子)。

我如何使用 Laravel 验证器来做到这一点?我怀疑有任何内置的验证器,所以我必须推出自己的验证器,但我什至不确定如何编写查询来检查它。

谁能告诉我一个有助于解决这个问题的查询字符串?

【问题讨论】:

【参考方案1】:

如果一篇文章只有一位作者,则不应使用第三张表。所以,你应该把 user_id id 放在posts 表中,并在posts 表中添加以下约束:UNIQUE ( permalink, user_id )

如果您的帖子可以有多个作者,那么您的永久链接系统就不能这样工作。

【讨论】:

以上是关于Laravel 4 自定义唯一验证多列的主要内容,如果未能解决你的问题,请参考以下文章

如何使用验证“唯一”访问 Laravel 中的自定义文本框名称?

表单请求验证中的 Laravel“独特”自定义消息验证

Laravel 扩展规则消息

在 laravel 多身份验证中为单个守卫自定义登录凭据

Laravel 5 中的自定义验证器

Laravel 5.4 - 如何为同一个自定义验证规则使用多个错误消息