如何将用户数据从 LoginController 传递到我的 UserController

How to pass user's data from LoginController to my UserController

我想returnUser通过LoginController.

注册到UserController后的数据

下面是 LoginController, 我已经用学生的索引号修改了默认的电子邮件登录:

namespace App\Http\Controllers\Auth;

use App\Http\Controllers\BaseController;
use Illuminate\Foundation\Auth\AuthenticatesUsers;
use Illuminate\Http\Request;

class LoginController extends BaseController {

    public function username()
    {
        return 'index_no';
    }

    public function redirectTo(Request $request)
    {
        $id = $request->input('id');

        return redirect()->route('users', ['id' => $id]);
    }
}

在重定向时我想要用户 id,但我得到这个:

FatalThrowableError error Too few arguments to function App\Http\Controllers\Auth\LoginController::redirectTo()

您正在为 redirectTo() 函数定义一个参数,默认情况下,它不需要任何参数。试试这个:

public function redirectTo()
{
    return redirect()->route('users', ['id' => auth()->id()]);
}

解释是,鉴于此重定向将在成功登录后发生,用户已经登录,因此您可以使用 Auth facade 或 auth() helper 来检索登录用户的信息。

我只需要消除 redirect() 方法

public function redirectTo()
{

    return route('auth.clearance',['id'=>auth()->id()]);
}