从控制器向控制器传递参数不起作用


Passing argument from controller to controller not working

Aloha,我正在制作一个锻炼管理器,在其中你有一个显示你最近5次锻炼的仪表板。我为每一项训练设置了一个表格,允许用户删除其中的任何一项。这里是仪表板中的表格

{!! Form::open(['route' => ['dashboard.workout.destroy', $workout->id], 'style' =>'display:inline-block;', 'method' => 'DELETE']) !!}

此路由将在WorkoutController.php中调用此方法

public function destroy($id, Request $request)
{
    $workout = Workout::findOrFail($id);
    $workout->delete();
    $message = "Workout deleted successfully!";
    return redirect()->route('dashboard.index', ['message' => $message]);
}

此路由将在DashboardController.php中调用此方法

public function index($message = null)
{
  $user = Auth::user();
  // Workouts
  ...
  // Inbodies
  ...
  // Measures
  ...
  return view('dashboard.index', compact('user','workoutsDesc','workouts','lastInbody','inbodies','measures','lastMeasure','message'));
}

问题是,我正试图将变量$消息从WorkoutController传递到DashboardController

return redirect()->action('Dashboard'DashboardController@index', [$message]); 
return redirect()->action('Dashboard'DashboardController@index')->with('message', $message);
return redirect()->route('dashboard.index', $message);

但我仍在努力寻找方法。

首先,来自Laravel 5.1文档:
If your route has parameters, you may pass them as the second argument to the route method
由于该消息不是您路线的参数,因此您无法传递该消息。一个可能的解决方案可以是闪烁数据。如果会话具有该键并包含值,请检查下一个控制器,然后将其添加到变量并传递到视图。
希望这能奏效。