Php Laravel 5.3注册后获取最后一个插入id

Php Laravel 5.3注册后获取最后一个插入id,php,ajax,laravel,laravel-5.3,Php,Ajax,Laravel,Laravel 5.3,使用laravel5.3 php 5.6.3 我想要注册后重定向页面的用户表中最后插入的id 因此,我希望最后插入的id是userprofileadd.blade.php 我还尝试了->使用'id',$user->id从注册函数 我不想在注册后自动登录,所以我删除了登录部分,注册后用户将被重定向到另一个表单,我想要从users表中注册的最新用户id 寄存器控制器: <?php namespace App\Http\Controllers\Auth; use App\User; use

使用laravel5.3 php 5.6.3

我想要注册后重定向页面的用户表中最后插入的id

因此,我希望最后插入的id是userprofileadd.blade.php

我还尝试了->使用'id',$user->id从注册函数

我不想在注册后自动登录,所以我删除了登录部分,注册后用户将被重定向到另一个表单,我想要从users表中注册的最新用户id

寄存器控制器:

<?php

namespace App\Http\Controllers\Auth;

use App\User;
use App\role;
use App\Userdetails;

use App\Http\Controllers\Controller;
use Illuminate\Support\Facades\Validator;
use Illuminate\Foundation\Auth\RegistersUsers;

class RegisterController extends Controller
{
    /*
    |--------------------------------------------------------------------------
    | Register Controller
    |--------------------------------------------------------------------------
    |
    | This controller handles the registration of new users as well as their
    | validation and creation. By default this controller uses a trait to
    | provide this functionality without requiring any additional code.
    |
    */

    use RegistersUsers;

    /**
     * Where to redirect users after registration.
     *
     * @var string
     */
    protected $redirectTo = '/userprofileadd';

    /**
     * Create a new controller instance.
     *
     * @return void
     */
    public function __construct()
    {
        $this->middleware(['auth', 'hr']);
    }

    /**
     * Get a validator for an incoming registration request.
     *
     * @param  array  $data
     * @return \Illuminate\Contracts\Validation\Validator
     */
    protected function validator(array $data)
    {
        return Validator::make($data, [

            'email' => 'required|email|max:255|unique:users',
            'password' => 'required|min:6|confirmed',
            'role'=>'required'
        ]);
    }

    /**
     * Create a new user instance after a valid registration.
     *
     * @param  array  $data
     * @return User
     */
    protected function create(array $data)
    {
        return User::create([

            'email' => $data['email'],
            'password' => bcrypt($data['password']),
            'role_id'=>$data['role'],
        ]);
    }

    public function showregistrationform()
    {
        $roles = role::all(); // get all teams
    return view('auth.register', [ 'roles' => $roles]);
    }
}

我不确定这是否是您要查找的内容,但您可以这样做来检索users表中的最新记录:

$latestUser = App\User::latest()->first();

希望这会有所帮助。

我不确定这是否是您要查找的内容,但您可以这样做来检索用户表中的最新记录:

$latestUser = App\User::latest()->first();

希望这会有所帮助。

如果您使用的是模型,那么

$user = new User();
$user->name = "JOHN";
$user->save();
$user->id; // contain the inserted id
如果您使用的是db类

$id = DB::table('users')->insertGetId(
   ['email' => 'john@example.com', 'votes' => 0]
);

如果您使用的是模型,那么

$user = new User();
$user->name = "JOHN";
$user->save();
$user->id; // contain the inserted id
如果您使用的是db类

$id = DB::table('users')->insertGetId(
   ['email' => 'john@example.com', 'votes' => 0]
);
获取上次创建的用户

将用户标识传递到自定义重定向页面

您可以使用Laravel Auth redirectTo方法

例如:

<?php

namespace App\Http\Controllers\Auth;

use App\User;
use App\role;
use App\Userdetails;

use App\Http\Controllers\Controller;
use Illuminate\Support\Facades\Validator;
use Illuminate\Foundation\Auth\RegistersUsers;

class RegisterController extends Controller
{
    public $lastCreatedUser;

    use RegistersUsers;

    protected $redirectTo = '/userprofileadd';

    //The redirectTo method will take precedence over the redirectTo attribute.
    protected function redirectTo()
    {
        //assuming your route name is 'userprofileadd' if not, use your route name of the route('/userprofileadd')
        return route('userprofileadd', ['id' => $this->lastCreatedUser]);
    }

    public function __construct()
    {
        $this->middleware(['auth', 'hr']);
    }

    protected function validator(array $data)
    {
        return Validator::make($data, [

            'email' => 'required|email|max:255|unique:users',
            'password' => 'required|min:6|confirmed',
            'role'=>'required'
        ]);
    }

    protected function create(array $data)
    {
        $user = User::create([

            'email' => $data['email'],
            'password' => bcrypt($data['password']),
            'role_id'=>$data['role'],
        ]);

        $this->lastCreatedUser = $user->id;
        return $user;
    }

    public function showregistrationform()
    {
        $roles = role::all(); // get all teams
    return view('auth.register', [ 'roles' => $roles]);
    }
}
希望能有帮助。。让我知道结果。

以获取上次创建的用户

将用户标识传递到自定义重定向页面

您可以使用Laravel Auth redirectTo方法

例如:

<?php

namespace App\Http\Controllers\Auth;

use App\User;
use App\role;
use App\Userdetails;

use App\Http\Controllers\Controller;
use Illuminate\Support\Facades\Validator;
use Illuminate\Foundation\Auth\RegistersUsers;

class RegisterController extends Controller
{
    public $lastCreatedUser;

    use RegistersUsers;

    protected $redirectTo = '/userprofileadd';

    //The redirectTo method will take precedence over the redirectTo attribute.
    protected function redirectTo()
    {
        //assuming your route name is 'userprofileadd' if not, use your route name of the route('/userprofileadd')
        return route('userprofileadd', ['id' => $this->lastCreatedUser]);
    }

    public function __construct()
    {
        $this->middleware(['auth', 'hr']);
    }

    protected function validator(array $data)
    {
        return Validator::make($data, [

            'email' => 'required|email|max:255|unique:users',
            'password' => 'required|min:6|confirmed',
            'role'=>'required'
        ]);
    }

    protected function create(array $data)
    {
        $user = User::create([

            'email' => $data['email'],
            'password' => bcrypt($data['password']),
            'role_id'=>$data['role'],
        ]);

        $this->lastCreatedUser = $user->id;
        return $user;
    }

    public function showregistrationform()
    {
        $roles = role::all(); // get all teams
    return view('auth.register', [ 'roles' => $roles]);
    }
}

希望能有帮助。。让我知道结果。

你到底想做什么?为什么你在注册后注释掉登录?我不想在注册后自动登录,所以我删除了登录部分,注册后用户将重定向到另一个表单,我想要从用户表中注册的最新用户id检查我的答案,看看这是否解决了您的问题,或者它可能给出了您应该做什么的一般想法。您到底想做什么?为什么你在注册后注释掉登录?我不想在注册后自动登录,所以我删除了登录部分,注册后用户将重定向到另一个表单,我想要从users表中注册的最新用户id检查我的答案,看看这是否解决了您的问题,或者它可能给出了您应该做什么的一般想法。是的,我的路线:route::get'/userprofileadd','UserprofileController@index';@我的答案有用吗?或者您有什么问题吗?是的,我的路线:route::get'/userprofileadd','UserprofileController@index';@我的答案有用吗?或者你有什么问题吗?事实上我可以通过你的答案获得最新的id,但我想在url中发送它,并在下一个表单中的隐藏字段中捕获它为什么不将它提供给你重定向到的视图,在该视图中,你可以像这样在隐藏字段中捕获{{{$user->id}?事实上,我可以通过你的答案获得最新的id,但是我想在url中发送它,并在下一个表单中的隐藏字段中捕获它,为什么不将它提供给您重定向到的视图,在该视图中,您可以像这样在隐藏字段中捕获{{{$user->id}?