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

Laravel8+PHP8环境count()参数为string类型报错如何解决

问题根因

报错是因为app/Models/user.php中的$fillable属性被错误定义为字符串类型,Laravel框架要求$fillable必须为数组格式。报错行GuardsAttributes.php:235执行count($this->getFillable())逻辑时,PHP 8.0+ 对count()参数做了强类型校验,仅允许传入数组或Countable类型的参数,传入字符串就会触发你遇到的TypeError。
不要修改vendor目录下的Laravel框架源码,该问题完全是业务代码配置错误导致的,修改框架源码会带来后续版本升级的兼容隐患。

修复操作步骤
  • 打开项目下的app/Models/user.php文件
  • 将原有protected $fillable = 'name';代码修改为数组格式,根据你的业务需求补充所有需要批量赋值的字段(登录场景通常需要email、password等字段),示例修改后代码如下:
<?php

namespace App\Models;

use Illuminate\Database\Eloquent\Factories\HasFactory;
use Illuminate\Database\Eloquent\Model;

class user extends Model
{
    use HasFactory;
    protected $fillable = ['name', 'email', 'password'];
}
  • 重新测试登录逻辑即可恢复正常

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.05 11:21:03