在laravel中返回redirect->带有请求而不是参数的路由?

问题描述

我有一个名为 Direction 的函数,它接受请求并在条件为真时重定向到以下视图。这是代码

   public function direction(Request $request)
{
    $activity_id=$request->id;
    $activity_type=Activity::where('id',$activity_id)->pluck('type');
    if($activity_type[0]=='event')
     {

     return redirect()->route('getActivity',compact('activity_id'));
     }
    
    else{
         echo "please select valid id ";
     }
}

它工作得很好,但我喜欢在另一个表中保存一些数据后使用相同的功能。并重定向到我使用的以下内容

return  redirect()->route('progress.direction',$activity_id)->with('message','Save Successfully!');

重定向唯一没有作为请求获取的参数 http://localhost:8000/progress/direction?1ac27656-0da2-4dc7-a3f9-3604e002db91。 我的问题是如何将以下参数作为来自控制器的请求发送。

解决方法

你必须像下面这样修改你的路线

Route::any('/progress/direction/{direction?}','ProgressReportController@direction')->name('progress.direction');

这里我添加了问号,这意味着它是可选的。如果你不需要可选,那么你可以删除问号