传递参数以在控制器中创建操作

时间:2018-02-04 16:34:01

标签: php laravel laravel-5 controller routes

在创建控制器中使用参数时,我遇到了渲染页面的问题。我的节目控制器工作但我的创建控制器没有。抛出的错误是404。

  

抱歉,找不到您要查找的页面。

网址是: http://myapp.test/country/us/state/create

我的控制器如下:

// Show
public function show(Country $country, State $state){
  return view('state.show', compact('state'));
}
// Create
public function create(Country $country) {
  return view('state.create', compact('country'));
}

我的路线如下:

Route::get('country/{country}/state/{state}', 'StateController@show');
Route::get('country/{country}/state/create', 'StateController@create');

1 个答案:

答案 0 :(得分:1)

您需要将路线翻转为

Route::get('country/{country}/state/create', 'StateController@create');
Route::get('country/{country}/state/{state}', 'StateController@show');

Laravel按照定义的顺序处理路线,因此在您当前的代码中,Laravel将create视为state