laravel 压缩重定向不传递变量

laravel redirect with compact does not pass variable

我正在尝试将紧凑的数组传递给视图,我知道我可以这样做 return view('dashboard',compact('user')); 但我想使用重定向。当我使用 redirect('dashboard')->with(compact('user')); 时,它会在我的仪表板视图上显示错误 undefined variable user。可能是什么问题呢 ?有什么帮助吗?

请在下面找到我的重定向到我的仪表板视图的方法

public function store(UsercreateRequest $request)
{

     $image =$request->file('image');
    if($request->hasFile('image'))
    {
        if($image->isValid())
        {

            $way=public_path('images');

            $extension=$image->getClientOriginalExtension();



                $name=$image->getClientOriginalName();
                //echo $name;

            if(file_exists($way.'/'.$name))
            {

                if($image->move($way,$name))
            {

                //echo'ok '; //75485205
                //echo $name;
                    $data= array_merge($request->all(),['image'=>$name]);
                $user=$this->userRepository->store($data);
                return redirect('dashboard')->with(compact('user'));
             }

            }



        }

    }
    return redirect('signup')->withErrors(" L'enrisgrement n'a pas abouti !");
    //
}

return 重定向('dashboard')->with(紧凑('user'));

你不能那样做。路由 dashboard 将拥有自己的控制器方法来加载视图。因此在重定向期间传递数据不会有任何效果。您需要 return 查看响应才能像您自己所说的那样工作。

通常,当存储新项目时,重定向将指向新创建的项目。由于您正在创建一个新用户,如果您有一个用户的个人资料页面,您可能会重定向到该用户的个人资料页面。

return redirect('users/' . $user->id);

演出晚了,但万一有人进入此页面并需要答案:您可以将关联数组传递给 with:

redirect('dashboard')->with([
    'user' => $user,
    'foo' => 'bar',
    'dinner' => 'dolma'
]);

如果 return redirect('login')->with('user',$user); 适合您并且您可以在 'login' 视图中使用 $user,这意味着您的设置是正确的,您将能够使用 $foo$dinner