2014-03-28 24 views
0

我期待为所有参数创建像site.com/mycat/myorg/myexam/mysyllabus和site.com/mycat/myorg/myexam等URL结构。如何在Laravel 4中制作多级网址结构?

目前,我经过PARAMS从URL的功能,如:

Route::get('{cat}/{org}/{exam}/{syllabus}', '[email protected]'); 

和我的功能看起来像这样:

public function myPage($cat, $org, $exam, $syllabus) { 
    $result = myModel::where('syllabus_slug', $syllabus)->first(); 
    if(empty($result)) { App::abort(404); } 
    else 
    return View::make('myPage', $result); 
} 

我认为这将是非常耗费资源,以检查从数据库的每个请求的所有url params。目前我只是从数据库中检查$ syllabus参数,但是这样可以传递任何$ org,$ cat的值而不会出现任何错误。当然,我可以检查数据库中的所有参数,但我认为这不是用这个真棒框架来处理URL的正确方法。我也想让猫和组织可选。

回答

1

您是否只有一定数量的类别,组织等?如果是这样,Laravel附带了一些名为Route Prefixing的东西,您可以在这里为每个类别和组织做类似的事情:

Route::group(array('prefix' => 'myCategory'), function() 
{ 

    Route::group(array('prefix' => 'myOrg'), function() 
    { 

     Route::group(array('prefix' => 'myExam'), function() 
     { 
      Route::get('/', '[email protected]'); 

     }); 

     Route::group(array('prefix' => 'myOtherExam'), function() 
     { 
      Route::get('/', '[email protected]'); 

     }); 
    }); 
});