嗨,我想要一些帮助。我有一个函数来验证所需的表单字段,我通过req。数组中的字段,因此如果为空,则first_name返回错误消息:“first_name为空”。 。问题是我想让消息中的字段名称对用户看起来更“友好”,没有camelCases或'_'。我怎样才能做到这一点?
P.S。这是我的代码:
$required_fields = array('first_name', 'last_name', 'email', 'profileInfo', 'message');
$errors = array_merge($errors, check_required_fields($required_fields));
现在输出错误消息如下所示: “first_name是必需的”或“需要profileInfo”。 功能如下:
function check_required_fields($required_fields) {
$field_errors = array();
foreach($_POST as $field=>$value){
if(empty($value) && in_array($field, $required_fields) === true){
$field_errors[] = "the " . $field . " is required.";
//break 1;
}
}
return $field_errors;
}
答案 0 :(得分:2)
您可以为每个必填字段添加标签......
$required_fields = array(
'first_name' => 'First Name',
'last_name' => 'Last name',
'email' => 'Email Address',
'profileInfo' => 'Profile information',
'message' => 'Message'
);
$errors = array_merge($errors, check_required_fields($required_fields));
您需要更改check_required_fields
方法才能正确处理$required_fields
数组,如下所示:
function check_required_fields($required_fields)
{
$field_errors = array();
foreach ($_POST as $field => $value)
{
if (empty($value) && array_key_exists($field, $required_fields) === true)
{
$field_errors[] = "the " . $required_fields[$field] . " is required.";
//break 1;
}
}
return $field_errors;
}
编辑:我刚刚注意到$_POST
上的循环只有在设置字段时才能按预期工作。请尝试以下方法:
function check_required_fields($required_fields)
{
$field_errors = array();
foreach ($required_fields as $field => $label)
{
$value = $_POST[$field];
if (empty($value))
{
$field_errors[] = "the " . $label . " is required.";
//break 1;
}
}
return $field_errors;
}