【发布时间】:2016-08-17 22:17:24
【问题描述】:
我的应用中有很多不同的地方,用户可以在其中编辑他们的数据。更具体地说,我需要从注册开始(检查他们的用户名长度,是否需要某些字段等)并在他们登录时检查他们的数据(再次检查他们的用户名长度),从而使用用户数据验证表单。此外,当他们编辑他们的个人资料时,我需要检查他们的用户名最多可以包含多少个字符等。这只是开始。如果我有一个管理面板,我需要在那里做一个审核面板,我也需要在那里做。而不仅仅是用户名,可能还有他们的全名、头像 URL 等。
我无法为此创建一个请求文件,因为在注册时,只有大约 4 个字段,而在登录时有 2 个,在用户帐户设置中,大约有 10 个。所以请求文件在所有情况下都需要不同.
但是,验证规则(例如用户名)必须是 x 个字符并且必须是字母数字。并且密码需要最多 x 个字符等。这在所有不同的请求文件中非常重复。
如何在不重复所有验证规则的情况下最好地解决这个问题?
代码示例:
// LoginRequest.php
public function rules()
{
return [
'username' => 'required|max:16|min:6',
'password' => 'required|max:16|min:6|alphanumeric'
];
}
// UserAccountSettingsRequest
public function rules()
{
return [
'username' => 'required|max:16|min:6|alphanumeric',
'email' => 'required|email',
'name' => 'required|max:100|min:2',
'password' => 'required|max:16|min:6',
'avatar' => 'required|max:256'
];
}
// RegistrationRequest
public function rules()
{
return [
'username' => 'required|max:16|min:6|alphanumeric',
'name' => 'required|max:100|min:2',
'email' => 'required|email',
'password' => 'required|max:16|min:6',
];
}
如您所见,我不得不多次重复许多规则。我怎样才能防止这种情况发生?
谢谢!
【问题讨论】:
标签: php validation laravel