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

时间:2019-10-06 23:01:05

标签: php laravel authentication laravel-6

我想通过UserUserController注册后返回LoginController.的数据

下面是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错误,函数App \ Http \ Controllers \ Auth \ LoginController :: redirectTo()的参数太少

2 个答案:

答案 0 :(得分:2)

您正在为redirectTo()函数定义一个参数,默认情况下,该参数不包含任何参数。尝试以下方法:

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

原因是,鉴于重定向将在成功登录后发生,因此该用户已经登录,因此您可以使用Auth门面或auth()助手来检索登录用户的信息。

答案 1 :(得分:0)

我只需要消除redirect()方法

public function redirectTo()
{

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