You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何仅在$this->language()返回en时为Laravel验证添加alpha_num规则

解决方案:根据语言动态添加Laravel验证规则

你可以通过动态构建验证规则数组,结合对language()方法返回值的判断,实现仅在英文环境下启用alpha_num规则的需求,以下是两种简洁的实现方式:

方式一:条件追加规则

先定义基础的必填规则,再判断当前语言是否为'en',符合条件则向规则数组中追加alpha_num:

public function rules()
{
    $rules = [
        'title' => ['required'],
    ];

    if ($this->language() === 'en') {
        $rules['title'][] = 'alpha_num';
    }

    return $rules;
}

public function language()
{
    // 实际业务逻辑可根据需求调整,比如从请求/配置中获取语言
    return 'en';
}

方式二:数组合并简化写法

利用array_merge和三元表达式,一行完成规则的动态构建:

public function rules()
{
    return [
        'title' => array_merge(
            ['required'],
            $this->language() === 'en' ? ['alpha_num'] : []
        ),
    ];
}

public function language()
{
    return 'en';
}

这两种方式都能确保只有当language()返回'en'时,title字段才会应用alpha_num验证规则,其他语言环境下仅保留required规则。

内容的提问来源于stack exchange,提问作者Cudos

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.20 01:05:27