Laravel告诉我未定义的索引,但dd说它在那里

lol*_*irl 0 php illuminate-container laravel-5

启动了一个新的Laravel 5.2项目并实现了它附带的默认身份验证.我想修改它,以便注册表单有一个名字和姓氏的字段,而不仅仅是'name'.我在视图,验证和模型中添加了字段.当我测试时,我得到以下内容:在此输入图像描述

第71行位于以下代码块中,用于姓氏或"lname".

 protected function create(array $data)
    {
        return User::create([
            'fname' => $data['fname'],
            'lname' => $data['lname '],
            'email' => $data['email'],
            'password' => bcrypt($data['password']),
        ]);
    }
Run Code Online (Sandbox Code Playgroud)

当我dd在数据数组之前添加一个return/create像这样的数据:

 protected function create(array $data)
    {
        dd($data);
        return User::create([
            'fname' => $data['fname'],
            'lname' => $data['lname '],
            'email' => $data['email'],
            'password' => bcrypt($data['password']),
        ]);
    }
Run Code Online (Sandbox Code Playgroud)

我明白了: 在此输入图像描述

我们可以清楚地看到,lname实际上,它存在于该数组中,不应该是未定义的索引.这是怎么回事?

Abd*_*lam 5

改变这一点

'lname' => $data['lname '],
Run Code Online (Sandbox Code Playgroud)

对此

'lname' => $data['lname'], # additional space within the key
Run Code Online (Sandbox Code Playgroud)

在错误检查第二行,你可以看到 'lname '