2017-03-14 61 views
0

我有一些看起来像重复的路线。laravel申请通配符路由和控制器

// Point 
    Route::get('admincp/point', '[email protected]'); 
    Route::post('admincp/point/store', '[email protected]'); 
    Route::get('admincp/point/{id}/edit', '[email protected]'); 
    Route::patch('admincp/point/{id}/update', '[email protected]'); 
    Route::get('admincp/point/{id}/destroy', '[email protected]'); 

// Faq 
    Route::get('admincp/faq', '[email protected]'); 
    Route::post('admincp/faq/store', '[email protected]'); 
    Route::get('admincp/faq/{id}/edit', '[email protected]'); 
    Route::patch('admincp/faq/{id}/update', '[email protected]'); 
    Route::get('admincp/faq/{id}/destroy', '[email protected]'); 

// Slider 
    Route::get('admincp/slider', '[email protected]'); 
    Route::post('admincp/slider/store', '[email protected]'); 
    Route::get('admincp/slider/{id}/edit', '[email protected]'); 
    Route::patch('admincp/slider/{id}/update', '[email protected]'); 
    Route::get('admincp/slider/{id}/destroy', '[email protected]'); 

我不想重复自己。我能在拉拉维尔这样做吗?

function generateRoute($name) { 
     Route::get("admincp/$name", "{$name}[email protected]"); 
     Route::post("admincp/$name/store", "{$name}[email protected]"); 
     Route::get("admincp/$name/{id}/edit", "{$name}[email protected]"); 
     Route::patch("admincp/$name/{id}/update", "{$name}[email protected]"); 
     Route::get("admincp/$name/{id}/destroy", "{$name}[email protected]"); 
} 

回答

1

使用资源路线:

Route::group(['prefix' => 'admincp'], function() { 
     Route::resource('point', 'PointController'); 
     Route::resource('faq', 'FaqController'); 
     Route::resource('slider', 'SliderController'); 
    } 
+0

谢谢你,我的朋友 –