跳到内容

字数统计

编辑此页

7.2

WordCount 约束在 Symfony 7.2 中引入。

验证字符串(或实现 Stringable PHP 接口的对象)是否包含给定数量的单词。 在内部,此约束使用 IntlBreakIterator 类根据您的区域设置计数单词。

基本用法

如果您想确保 BlogPostDTO 类的 content 属性包含 100 到 200 个单词,您可以这样做

1
2
3
4
5
6
7
8
9
10
// src/Entity/BlogPostDTO.php
namespace App\Entity;

use Symfony\Component\Validator\Constraints as Assert;

class BlogPostDTO
{
    #[Assert\WordCount(min: 100, max: 200)]
    protected string $content;
}

选项

min

类型: integer 默认值: null

值必须包含的最少单词数。

max

类型: integer 默认值: null

值必须包含的最多单词数。

locale

类型: string 默认值: null

用于使用 IntlBreakIterator 类计数单词的区域设置。 默认值 (null) 表示约束使用当前用户区域设置。

groups

类型: array | string 默认值: null

它定义此约束的验证组。 阅读更多关于 验证组 的信息。

minMessage

类型: string 默认值: 值太短。它应至少包含一个单词。|值太短。它应至少包含 {{ min }} 个单词。

如果值不包含至少最少数量的单词,将显示此消息。

您可以在此消息中使用以下参数

参数 描述
{{ min }} 最少单词数
{{ count }} 实际单词数

maxMessage

类型: string 默认值: 值太长。它应包含一个单词。|值太长。它应包含 {{ max }} 个或更少的单词。

如果值包含超过最大数量的单词,将显示此消息。

您可以在此消息中使用以下参数

参数 描述
{{ max }} 最多单词数
{{ count }} 实际单词数

payload

类型: mixed 默认值: null

此选项可用于将任意特定于域的数据附加到约束。 配置的 payload 不会被 Validator 组件使用,但其处理完全取决于您。

例如,您可能希望使用 多个错误级别,以便根据错误严重性在前端以不同方式呈现失败的约束。

本作品,包括代码示例,根据 Creative Commons BY-SA 3.0 许可获得许可。
目录
    版本