我以前从未使用过 Laravel,我正在使用 laravel 默认用户注册和表单第 1 步的身份验证进行 3 部分注册。每个步骤都有自己的表。 step 1s 表的 id 列用于链接所有 3 个表。
目前我正在使用 $id = Auth::user()->id
在步骤 2 Controller 中获取登录用户 ID。相反,如何在用户创建到第 2 步 Controller 存储方法并将 View 重定向到第 2 步之后路由/传递 id?
在 authcontroller 中
protected function create(array $data)
{
return User::create([
'email' => $data['email'],
'password' => bcrypt($data['password']),
'firstName' => $data['firstName'],
'middleName' => $data['middleName'],
'lastName' => $data['lastName'],
]);
}
在 Illuminate\Foundation\Auth\RegistersUsers 中;
public function register(Request $request)
{
$validator = $this->validator($request->all());
if ($validator->fails()) {
$this->throwValidationException(
$request, $validator
);
}
Auth::guard($this->getGuard())->login($this->create($request->all()));
// pass id to store method in profile and redirect to profileinfo
return view('user/profileinfo');
}
}
最佳答案
而不是使用 create()
返回 true
的方法或 false
,你应该使用 save()
返回模型的方法:
$id = $data->save()->id;
但是如果你仍然需要简短的语法,你可以使用 mass assignment :
$userModel = new User($data);
$userModel->save();
$id = $userModel->id;
关于Laravel 5.2 - 如何获取新创建用户的 id 并将其传递给 Controller ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37176669/