laravel - Laravel 5.7 使用不同于模型属性的表单字段进行验证
问题描述
在以下情况下,我无法运行 laravel 验证。
我有一个表格,用户在其中注册自己和他的公司(empresa)。
用户和 empresa 都具有“documento”属性,因此在表单中,我将个人文档称为“cpf”,将公司文档称为“documento_corp”。
问题是我需要检查这些是否已经注册。
我尝试了以下但它给了我
未找到列:1054 'where 子句'中的未知列'documento_corp'(SQL:选择计数(*)作为聚合来自
empresas
wheredocumento_corp
= 29242509000122 和(documento
= 29242509000122))
return Validator::make($data, [
'name' => ['required', 'string', 'max:255'],
'email' => ['required', 'string', 'email', 'max:255', 'unique:users'],
'password' => ['required', 'string', 'min:6', 'confirmed'],
'phone' => ['required', 'string', 'min:10', new Telefone],
'cpf' => ['required', 'string', 'min:11', new Cpf],
'name_corp' => ['required', 'string', 'max:255'],
'email_corp' => ['required', 'string', 'email', 'max:255'],
'phone_corp' => ['required', 'string', 'min:10', new Telefone],
'documento_corp' => ['required', 'string', 'min:11', Rule::unique('empresas')->where(function($query) use ($data) {
return $query->where('documento', $data['documento_corp']);
}), new CpfOuCnpj],
'cep_corp' => ['required', 'string', 'min:8'],
'rua_corp' => ['required', 'string', 'min:5'],
'uf_corp' => ['required', 'string', 'min:2', 'max:2'],
'bairro_corp' => ['required', 'string', 'min:5'],
'cidade_corp' => ['required', 'string', 'min:2'],
]);
那我该怎么做呢?
解决方案
你不能做unique:empresas,documento
吗?
语法为:unique:table,column,except,idColumn
推荐阅读
- php - 使用基于自定义 Woocommerce 表单的网关处理付款后收到的数据
- c# - 在 Matlab 中读取 .NET System.Data.DataTable 的行
- javascript - 检测html音频开始下载
- c++ - C++ Build Failed on Xcode OSX with multiple errors File IO ... is unavailable: introduced in macOS 10.15
- android - 这个布局是用 listview/recyclerview 构建的吗?
- javascript - 在浏览器中显示 mp4 流式视频
- c# - 当前上下文中不存在名称 httpWebRequest.ContentType
- c - 如何为 C 中的套接字提供自定义 IP?
- python - with the Twitter API - how can I get authentication for the engagement endpoint using a bearer token
- spring-data - Spring Data with MongoDB - 按可空字段查找