Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/laravel/11.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
将特定用户重定向到laravel中的特定视图_Laravel - Fatal编程技术网

将特定用户重定向到laravel中的特定视图

将特定用户重定向到laravel中的特定视图,laravel,Laravel,我一直在苦苦思索如何去做这件事。我有一个单一的登记表,供所有用户使用。但是,我想将一个特定的用户重定向到一个特定的路由,但是其他用户在注册时将被重定向到另一个页面。 我如何告诉laravel的请求方法,当这个特定的用户注册时,然后重定向到这个特定的页面。但是其他人,把他们送到别的地方去。我在表单中没有任何指示用户的内容,我想使用request来检测该用户。请有人来帮我。谢谢。您可以覆盖RegisterController上的registered方法,以便在用户注册后处理响应: use Illum

我一直在苦苦思索如何去做这件事。我有一个单一的登记表,供所有用户使用。但是,我想将一个特定的用户重定向到一个特定的路由,但是其他用户在注册时将被重定向到另一个页面。
我如何告诉laravel的请求方法,当这个特定的用户注册时,然后重定向到这个特定的页面。但是其他人,把他们送到别的地方去。我在表单中没有任何指示用户的内容,我想使用request来检测该用户。请有人来帮我。谢谢。

您可以覆盖
RegisterController
上的
registered
方法,以便在用户注册后处理响应:

use Illuminate\Http\Request;

...

/**
 * The user has been registered.
 *
 * @param  \Illuminate\Http\Request  $request
 * @param  mixed  $user
 * @return mixed
 */
protected function registered(Request $request, $user)
{
    // $user is the currently registered user

    if ($user->nationality == ...) {
        return redirect()->route(..., [...]);
    }

    ...

    // if that information isn't being stored on the User itself
    // you can still pull it from the Request
    //        $request->input('nationality');
}
一个让你开始的想法。只需确保从该方法返回某种类型的响应,否则它将在注册后默认返回其正常重定向位置

您可能有一个从静态数组甚至数据库查询生成的区域设置位置列表(假设)

$nationalities = [
    'Spain' => 'es',
    'England' => 'en',
    ...
];

return redirect()->route(
    'some-where', 
    ['locale' => $nationalities[$nationality] ?? 'en']
);

我不知道你想生成什么网址;这只是上面的一个示例。

您可以覆盖
注册控制器上的
注册方法来处理用户注册后的响应:

use Illuminate\Http\Request;

...

/**
 * The user has been registered.
 *
 * @param  \Illuminate\Http\Request  $request
 * @param  mixed  $user
 * @return mixed
 */
protected function registered(Request $request, $user)
{
    // $user is the currently registered user

    if ($user->nationality == ...) {
        return redirect()->route(..., [...]);
    }

    ...

    // if that information isn't being stored on the User itself
    // you can still pull it from the Request
    //        $request->input('nationality');
}
一个让你开始的想法。只需确保从该方法返回某种类型的响应,否则它将在注册后默认返回其正常重定向位置

您可能有一个从静态数组甚至数据库查询生成的区域设置位置列表(假设)

$nationalities = [
    'Spain' => 'es',
    'England' => 'en',
    ...
];

return redirect()->route(
    'some-where', 
    ['locale' => $nationalities[$nationality] ?? 'en']
);

我不知道你想生成什么网址;这只是上面的一个例子。

不确定这是否有帮助-但在我的应用程序中,我使用以下方法基于角色重定向用户:

public function handle($request, Closure $next)
{
    $user_role = $request->user()->role();

    switch ($user_role) {
        case 'admin':
            return redirect('admin/home');
            break;

        case 'regular':
            return redirect('account/home');
            break;

        case 'manager':
            return redirect('manager/home');
            break;

        case 'supervisor':
            return redirect('supervisor/home');
            break;

        default:
            return redirect('account/home');
            break;
    }

    return $next($request);
}

不确定这是否有帮助-但在我的应用程序中,我使用以下方法基于角色重定向用户:

public function handle($request, Closure $next)
{
    $user_role = $request->user()->role();

    switch ($user_role) {
        case 'admin':
            return redirect('admin/home');
            break;

        case 'regular':
            return redirect('account/home');
            break;

        case 'manager':
            return redirect('manager/home');
            break;

        case 'supervisor':
            return redirect('supervisor/home');
            break;

        default:
            return redirect('account/home');
            break;
    }

    return $next($request);
}


你的要求是什么。。你如何识别这个特定的“用户”?这正是我被卡住的地方。我不希望有任何输入字段来标识用户,而是使用请求方法来标识用户。如何使用任何可用的输入字段来调节注册并将特定用户重定向到特定页面?是否有解决此类问题的方法?如何确定?你如何识别他们?您使用什么条件来确定您所指的特定用户是谁?一定有别的东西,否则你就不会要求这个要求了。我只有一张表格。带字段:用户名、姓名、图像、关于、密码和国籍。注册后,我想把那些从“西班牙”转到西班牙语页面,那些从英国转到英语页面,法国转到法语页面等等。我如何做到这一点?当我抓取“国籍字段”并请求将其重定向到特定页面时,我如何调节该字段?老实说,这就是我真正想做的。获取国籍,检查并将其重定向到各自的页面。您的要求是什么。。你如何识别这个特定的“用户”?这正是我被卡住的地方。我不希望有任何输入字段来标识用户,而是使用请求方法来标识用户。如何使用任何可用的输入字段来调节注册并将特定用户重定向到特定页面?是否有解决此类问题的方法?如何确定?你如何识别他们?您使用什么条件来确定您所指的特定用户是谁?一定有别的东西,否则你就不会要求这个要求了。我只有一张表格。带字段:用户名、姓名、图像、关于、密码和国籍。注册后,我想把那些从“西班牙”转到西班牙语页面,那些从英国转到英语页面,法国转到法语页面等等。我如何做到这一点?当我抓取“国籍字段”并请求将其重定向到特定页面时,我如何调节该字段?老实说,这就是我真正想做的。抓取国籍,检查并将其重定向到各自的页面。非常感谢。那么,在注册、保存和登录用户之前,我是否声明此函数?或者在之后申报?哦,我还想在这个过程中对它们进行身份验证。这个方法在用户已经注册之后运行,所以它们在这一点上被注册和身份验证。。。这只是让你处理注册后应该发生的事情。。。让你更好地控制事后发生的事情。谢谢。我现在正在实施它。我会告诉你结果的。你的代码运行得很好。经过几次测试后,它将每个国家重新定向到各自的页面。但是我做了很多的IF来检查他们的国籍,这很麻烦(尽管我已经检查了20个国籍,我有相应的特定页面)。我正在考虑使用开关。开关可以正常工作。。。您还可以创建一个由国籍设置键控的数组,这些值位于您要重定向的位置,然后您可以
$nations[$national]??'一些默认的“
非常感谢。那么,在注册、保存和登录用户之前,我是否声明此函数?或者在之后申报?哦,我还想在这个过程中对它们进行身份验证。这个方法在用户已经注册之后运行,所以它们在这一点上被注册和身份验证。。。这只是让你处理注册后应该发生的事情。。。让你更好地控制事后发生的事情。谢谢。我现在正在实施它。我会告诉你结果的。你的代码运行得很好。经过几次测试后,它将每个国家重新定向到各自的页面。但是我做了很多的IF来检查他们的国籍,这很麻烦(尽管我已经检查了20个国籍,我有相应的特定页面)。我正在考虑使用开关。开关可以正常工作。。。您还可以对数组进行键控