Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/azure/12.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
Redirect laravel 5.2按id注册后重定向_Redirect_Laravel 5_Laravel 5.2 - Fatal编程技术网

Redirect laravel 5.2按id注册后重定向

Redirect laravel 5.2按id注册后重定向,redirect,laravel-5,laravel-5.2,Redirect,Laravel 5,Laravel 5.2,我在这里找到了一些示例,但它们并没有回答如何通过id将注册用户重定向到他自己的配置文件 protected$redirectPath='/profile/view/'.$user->id没有帮助。 我有一个项目,用户在没有电子邮件确认的情况下被授权,他们在注册后被发送到/home 到用户配置文件的路径是:/profile/view/id(id当然是唯一的)。 我设法在登录后将它们发送到那里(在AuthController中: public function authenticated($requ

我在这里找到了一些示例,但它们并没有回答如何通过id将注册用户重定向到他自己的配置文件

protected$redirectPath='/profile/view/'.$user->id没有帮助。
我有一个项目,用户在没有电子邮件确认的情况下被授权,他们在注册后被发送到
/home

到用户配置文件的路径是:
/profile/view/id
(id当然是唯一的)。 我设法在登录后将它们发送到那里(在AuthController中:

public function authenticated($request,$user)
{ 
    return  redirect('/profile/view/'.$user->id);
} 
但注册后重定向到配置文件,我无法处理。

方法1。 允许用户在没有ID的情况下查看自己的配置文件

路线(使ID可选):

控制器

public function view($id = null) {
    if (is_null($id) { //set id of currently signed in user if id == null
        $id = Auth::user()->id; 
    }

    //continue as before

}

方法2。 修改路由,使重定向发生在正确的url上

注意:路线的顺序很重要

注意:在这两种方法中,都必须使用
auth
中间件,否则,如果用户未登录,就会出现错误(
PHP错误:尝试获取第X行非对象的属性

使用这两种方法,您只需将用户重定向到
profile/view

  • 显示的是配置文件(URL中没有ID)
  • 被重定向到正确的url
    profile/view/ID

  • 非常感谢!!!第一个变体还可以..我刚刚添加了}elseif(isset($id)){//继续像以前一样
    public function view($id = null) {
        if (is_null($id) { //set id of currently signed in user if id == null
            $id = Auth::user()->id; 
        }
    
        //continue as before
    
    }
    
    Route::get('profile/view', function() {
        return redirect()->route('profile.view', ['id' => Auth::user()->id]);
    });
    
    Route::get('profile/view/{id}', ...)->name('profile.view');