首页 > 解决方案 > Laravel Validator 针对不同表的多个唯一规则

问题描述

我在各自的表中使用多个参数的unique规则。emailRequest $request

...
'company_email' => 'required|email|max:255|unique:users',
'personal_email' => 'required|email|max:255|unique:companies',
...
$validator = Validator::make($request->all(), $rules);

为两个表存储电子邮件的列是 name email
当我发送值时personal_email遇到以下错误。

Illuminate\Database\QueryException: SQLSTATE[42S22]: Column not found: 1054 Unknown column 'personal_email' in 'where clause' (SQL: select count(*) as aggregate from `users` where `personal_email` = email@email.com)

我的问题是如何为这两个规则指定实际的列名?

环境:

拉拉维尔 5.8

标签: phplaravelvalidation

解决方案


你可以通过它unique:usersunique:companies规则

'company_email' => 'required|email|max:255|unique:users,users_email_column',
'personal_email' => 'required|email|max:255|unique:companies,companies_email_column',

推荐阅读