这意味着未定义的索引:在拉拉维尔中team_id



我正在更改注册过程。邀请用户时,会将用户分配到同一团队。如果他自己注册,他可以选择一支球队。

一切都正常,除了team_id。我总是收到错误消息:

Undefined index: team_id

错误消息是什么意思?如何修复该错误?

我不明白为什么这不起作用,因为相同的功能适用于头像。

功能:

/**
* Get a validator for an incoming registration request.
*
* @param  array  $data
* @return IlluminateContractsValidationValidator
*/
protected function validator(array $data)
{
return Validator::make($data, [
'name' => 'required|string|max:30',
'username' => 'required|string|max:20|alpha_num|unique:users',
'email' => 'required|string|email|max:255|unique:users',
'password' => 'required|string|min:6',
'birthday' => 'required|date|before_or_equal:-16 years',
'agb' => 'accepted',
'gender' => 'required|boolean',
'team_id' => 'numeric'
]);
}
/**
* Create a new user instance after a valid registration.
*
* @param  array  $data
* @return AppUser
*/
protected function create(array $data)
{
if($data['gender'])
{
$avatar = 'defaultsavatarsmale.jpg';
}
else
{
$avatar = 'defaultsavatarsfemale.jpg';
}

if($data['team_id'])
{
$team = $data['team_id'];
}
else
{
$team = Null;
}

$user = User::create([
'name' => $data['name'],
'team_id' => $team,
'username' => $data['username'],
'email' => $data['email'],
'password' => bcrypt($data['password']),
'birthday' => $data['birthday'],
'gender' => $data['gender'],
'slug' => str_slug($data['username']),
'avatar' => $avatar,
'active' => false,
'activation_token' => str_random(255)
]);
Profile::create(['user_id' => $user->id ]);
while (true) {
$randomstring = substr(str_shuffle("0123456789abcdefghijklmnopqrstuvwxyz"), 0, 7);
if (Invite::where('url','!=', $randomstring)->exists()) {
Invite::create([
'user_id' => $user->id,
'url' => $randomstring
]);
break;
}
}
return $user;
}

阅读错误,您将能够理解它的含义。

请参阅此行:

if($data['team_id'])

如果$data数组不包含team_id索引怎么办?此代码无效。如果要验证它,则必须使用 array_key_exists((

if (array_key_exists('team_id', $key) && $data['team_id'])

if (isset($key['team_id']) && $data['team_id'])

两者都是做你想做的事的安全方法。

相关内容

最新更新