路由到基于变量编辑特定路径 - Laravel

时间:2017-03-27 10:37:59

标签: php laravel

在我正在构建的应用程序中,连接器可以与其他方面一起制作。这些连接器可以有不同的类型。这在例如创建路由中处理,如:

return redirect()->route('connector.'.$connector->type.'.create', $connector->id);

我现在正在尝试生成一个编辑页面,用户首先可以编辑常规信息,但必须重定向到特定类型。我对此的路由重定向是:

return redirect()->route('connector.'.$connector->type.'.edit', $connector->id);
// --> Missing required parameters for [Route: connector.getconnector.edit] [URI: connector/{connector}/getconnector/{getconnector}/edit].

路线档案:

Route::resource('connector.reportconnector', 'ReportconnectorController');  
Route::resource('connector.getconnector', 'GetconnectorController');

但是这条路线不起作用......当我将网址编辑为:connector/4/getconnector/getconnector/edit时,会生成我想要的网页。但是这个URL并不是我想要的。我如何获得格式化的connector/{id}/{type}/edit路由?

1 个答案:

答案 0 :(得分:2)

如果你使用Route :: get();作为解决方案,您必须为所有其他人(index, create, store, show, edit, update, delete)定义或者您的路线将以自己的方式继续工作。

您不需要仅为edit使用Route :: get()定义所有内容。 你可以这样使用。

Route::group(['prefix' => 'connector'], function()
{
  Route::resource('getconnector', 'GetconnectorController',  ['except' => ['edit']]); //this won't call the edit

  //So, For edit
  Route::get('{id}/{type}/edit',[
    'as' => 'connector.getconnector.edit', 
    'uses' => 'GetconnectorController@create'
    ]);

  //Others Under connector

});