0

我正在尝试删除客户姓氏字段的规则验证..

通过编辑 Classes/Customer.php 文件,我已成功在首页进行客户注册,如下所示:

'lastname' =>array('type' => self::TYPE_STRING, 'validate' => 'isCustomerName', 'required' => true, 'size' => 32),

至 :

'lastname' =>array('type' => self::TYPE_STRING, 'validate' => 'isAnything', 'required' => true, 'size' => 32),

我只是在验证中使用了 isAnything

但这在Backoffice中不起作用,因此我无法从 BO 编辑客户。

找不到要准确更改的文件。

我正在使用Prestashop V1.7.6.8。 请需要帮助。谢谢

4

1 回答 1

1

您必须修改两个文件中的两个方法。

src/Core/ConstraintValidator/CustomerNameValidator.php,方法isNameValid

private function isNameValid($name)
{
    return true; // Here true or your own validation.
    // Down the original code.
    $pattern = $this->characterCleaner->cleanNonUnicodeSupport(self::PATTERN_NAME);

    return (bool) preg_match($pattern, $name);
}

src/Core/Domain/Customer/ValueObject/LastName.php,方法assertLastNameIsValid

private function assertLastNameIsValid($lastName)
{
    return true; // Here true or your own validation.
    // Down the original code.
    $matchesLastNamePattern = preg_match('/^[^0-9!<>,;?=+()@#"°{}_$%:¤|]*$/u', stripslashes($lastName));

    if (!$matchesLastNamePattern) {
        throw new CustomerConstraintException(sprintf('Customer last name %s is invalid', var_export($lastName, true)), CustomerConstraintException::INVALID_LAST_NAME);
    }
}
于 2021-06-16T19:42:40.440 回答