Laravel 5.2 - 如何获取新创建用户的 id 并将其传递给 Controller

标签 laravel

我以前从未使用过 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/

相关文章:

php - Laravel-Eloquent-Adding record to MySQL : Building dynamic eloquent insert command, 并在第一列返回 "Column Not Found"

laravel - 如何设置动态 SMTP 详细信息 laravel

php - 何时在 Laravel 中使用双大括号?

laravel - 如何使用 Laravel Schema Builder 在表格上设置注释

laravel - Vue js $vm0 未定义

json - 找不到为 laravel windows 执行 gulp 的模块

laravel - Heroku Laravel 上的 HTTPS 重定向无法正常工作

laravel - toArray() 中缺少延迟加载关系

php - 仅按日期查询 DB DATETIME 列

laravel - Snappy PDF 中未显示 Google 图表