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

Laravel中Mews Captcha如何设置显示5个字符?

解决Mews Captcha验证码字符数不生效的问题

你的问题核心是配置放错了位置,Mews Captcha有独立的配置文件,不是存在config/app.php里,按以下步骤调整就能解决:

1. 确认发布了Captcha的配置文件

如果之前没发布过,先执行这条命令生成独立的配置文件:

php artisan vendor:publish --provider="Mews\Captcha\CaptchaServiceProvider"

执行完后,config目录下会出现captcha.php文件,这才是Mews Captcha的配置入口。

2. 修改正确的配置项

打开config/captcha.php,找到默认的length参数,改成用env变量读取:

'length' => env('CAPTCHA_LENGTH', 5), // 第二个参数是默认值,设置为5即可

然后确保你的.env文件里已经配置:

CAPTCHA_LENGTH=5

3. 移除Blade里的字符截取逻辑

别手动截取验证码字符,因为Session里存储的是包生成的完整长度验证码,前端截取后用户输入的5位会和Session里的原内容不匹配,导致验证失败。直接用包提供的验证码生成方法即可。

4. 清除配置缓存

Laravel会缓存配置文件,新配置可能没即时生效,执行这条命令清除缓存:

php artisan config:clear

如果是生产环境,执行php artisan config:cache重新缓存配置。

做完这些,验证码就会生成5位字符了。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.13 10:42:09