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

Posted

技术标签:

【中文标题】如何使用验证“唯一”访问 Laravel 中的自定义文本框名称?【英文标题】:How access custom textbox name in Laravel using validation 'unique'? 【发布时间】:2014-12-26 02:07:41 【问题描述】:

我有一个简单的问题。在我的表单中,我正在创建一个验证过程来检查数据库记录中的用户名是否存在。

我的问题是 Laravel 验证在其查询中使用文本框名称作为列名。 在我的表格中,我有这些列:

用户名, 姓, 名, 密码

在我的文本框中我有这个:

admin_username, 管理员姓氏, admin_firstname, 管理员密码

所以我得到了这个错误:

Illuminate \ Database \ QueryException (42S22) 
SQLSTATE[42S22]: Column not found: 1054 Unknown column 'admin_username' in 'where clause' (SQL: select count(*) as aggregate from `administrators` where `admin_username` = flaxadmin123)

这是我的验证结果:

'admin_username'    =>  'required|min:5|max:15|unique:administrators',

验证或查询时如何将admin_username改为username?

【问题讨论】:

嗯,所以在 laravel 中没有像我问的那样的功能? :( 查询或验证时可以使用自定义文本框名称。因为正如我所说。在验证 Laravel 时,使用文本框名称在数据库中进行查询。为了让我创建一个验证来检查用户名是否存在。我的表单中的文本框名称应该与数据库表中的列名相同? 【参考方案1】:

您可以在验证中指定自定义列名。

'admin_username'    =>  'required|min:5|max:15|unique:administrators,username',

这将使用 username 列而不是 admin_username

【讨论】:

以上是关于如何使用验证“唯一”访问 Laravel 中的自定义文本框名称?的主要内容,如果未能解决你的问题,请参考以下文章

使用 Laravel 中的验证器检查两个表中两列的唯一性

如何验证记录更新中的唯一字段

laravel 中的唯一字段验证问题

如何在使用 laravel 表单请求更新数据时验证电子邮件的唯一性?

如何在laravel中进行多字段唯一验证?

使用 laravel 验证检查唯一的日期/时间