【问题标题】:Undefined array key "name_of_firm" in laravel?laravel中未定义的数组键“name_of_firm”?
【发布时间】:2021-08-13 07:38:07
【问题描述】:

这是我的 RegisterController(Laravel ui 编辑)。请帮我。 我是否必须在此问题中添加任何其他页面。

protected function validator(array $data)
{
    return Validator::make($data, [
        'name' => ['required', 'string', 'max:255'],
        'email' => ['required', 'string', 'email', 'max:255', 'unique:users'],
        'password' => ['required', 'string', 'min:8', 'confirmed'],
    ]);
}

/**
 * Create a new user instance after a valid registration.
 *
 * @param  array  $data
 * @return \App\Models\User
 */
protected function create(array $data)
{
    return User::create([
        'name' => $data['name'],
        'email' => $data['email'],
        'password' => Hash::make($data['password']),
        'name_of_firm' => $data['name_of_firm'],
        'number' => $data['number'],
        'address' => $data['address'],
    ]);
}

【问题讨论】:

  • 在返回创建的用户之前添加dd($data),检查name_of_firm是否存在于$data数组中。
  • 检查您的 $data 是否获得密钥“name_of_firm”

标签: laravel laravel-8 laravel-ui


【解决方案1】:

如果name_of_firm 可以为空或需要,则有两种情况

案例:1

如果需要name_of_firm

protected function validator(array $data)
{
    return Validator::make($data, [
        'name' => ['required', 'string', 'max:255'],
        'email' => ['required', 'string', 'email', 'max:255', 'unique:users'],
        'password' => ['required', 'string', 'min:8', 'confirmed'],
        'name_of_firm' => ['required']
    ]);
}


/**
 * Create a new user instance after a valid registration.
 *
 * @param  array  $data
 * @return \App\Models\User
 */
protected function create(array $data)
{
    return User::create([
        'name' => $data['name'],
        'email' => $data['email'],
        'password' => Hash::make($data['password']),
        'name_of_firm' => $data['name_of_firm'],
        'number' => $data['number'],
        'address' => $data['address'],
    ]);
}

案例:2

如果name_of_firm 可以为空

protected function validator(array $data)
{
    return Validator::make($data, [
        'name' => ['required', 'string', 'max:255'],
        'email' => ['required', 'string', 'email', 'max:255', 'unique:users'],
        'password' => ['required', 'string', 'min:8', 'confirmed'],
    ]);
}


/**
 * Create a new user instance after a valid registration.
 *
 * @param  array  $data
 * @return \App\Models\User
 */
protected function create(array $data)
{
    return User::create([
        'name' => $data['name'],
        'email' => $data['email'],
        'password' => Hash::make($data['password']),
        'name_of_firm' => $data['name_of_firm'] ?? null, // make sure database is accept null value
        'number' => $data['number'],
        'address' => $data['address'],
    ]);
}

【讨论】:

    【解决方案2】:

    您应该使用data_getArr::get() 帮助解决不存在的元素:

    /**
     * Create a new user instance after a valid registration.
     *
     * @param  array  $data
     * @return \App\Models\User
     */
    protected function create(array $data)
    {
        return User::create([
            'name' => $data['name'],
            'email' => $data['email'],
            'password' => Hash::make($data['password']),
            'name_of_firm' => data_get($data, 'name_of_firm'),
            'number' => data_get($data, 'number'),
            'address' => data_get($data, 'address')],
        ]);
    }
    

    【讨论】:

      猜你喜欢
      • 2022-07-06
      • 1970-01-01
      • 2021-08-29
      • 2021-09-20
      • 2022-11-10
      • 1970-01-01
      • 2012-10-05
      • 1970-01-01
      • 2022-08-23
      相关资源
      最近更新 更多