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

Laravel表单提交报错Attempt to read property "name" on array求助

问题排查与解决方案

错误根源:$req->input() 方法返回的是数组类型,你代码中用对象访问符->去读取数组的键值,自然会触发「Attempt to read property "name" on array」的错误。

可选修复方案如下:

  • 方案1:改用数组语法读取请求参数
    把所有$data->xxx格式的调用改成数组取值$data['xxx']即可,修改后的控制器代码参考:
    class UserController extends Controller
    {
        function registerUser(Request $req)
        {
            $data = $req->input();
           
            $user_model = new User;
            $user_model->fullname = $data['name'];
            $user_model->mobile = $data['mobile'];
            $user_model->email = $data['email'];
            // 注意:密码不要明文存库,需要做哈希加密
            $user_model->password = bcrypt($data['password']);
            $user_model->save();
    
            return "registered successfully";
        }
    }
    
  • 方案2:直接从Request实例读取参数,无需提前存入$data变量,写法更简洁:
    class UserController extends Controller
    {
        function registerUser(Request $req)
        {
            $user_model = new User;
            $user_model->fullname = $req->name;
            $user_model->mobile = $req->mobile;
            $user_model->email = $req->email;
            $user_model->password = bcrypt($req->password);
            $user_model->save();
    
            return "registered successfully";
        }
    }
    
  • 方案3:使用批量赋值简化代码,前提是你需要先在User模型中设置$fillable属性,放行允许批量写入的字段:
    首先修改User模型:
    // app/Models/User.php
    protected $fillable = ['fullname', 'mobile', 'email', 'password'];
    
    控制器代码可以简化为:
    function registerUser(Request $req)
    {
        User::create([
            'fullname' => $req->name,
            'mobile' => $req->mobile,
            'email' => $req->email,
            'password' => bcrypt($req->password)
        ]);
        return "registered successfully";
    }
    

额外提醒:绝对不要直接将用户输入的明文密码存入数据库,Laravel内置的bcrypt()、Hash::make()方法都可以实现密码哈希加密,必须加上这步安全处理。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.30 01:09:05