Php 如何在Laravel4中创建多级url结构?

Php 如何在Laravel4中创建多级url结构?,php,laravel,laravel-4,Php,Laravel,Laravel 4,我希望为所有参数创建一个URL结构,如site.com/mycat/myorg/myexam/mysyllabus和site.com/mycat/myorg/myexam等 目前,我正在将参数从URL传递到函数,如下所示: Route::get('{cat}/{org}/{exam}/{syllabus}', 'homeController@myPage'); 我的函数如下所示: public function myPage($cat, $org, $exam, $syllabus) {

我希望为所有参数创建一个URL结构,如site.com/mycat/myorg/myexam/mysyllabus和site.com/mycat/myorg/myexam等

目前,我正在将参数从URL传递到函数,如下所示:

Route::get('{cat}/{org}/{exam}/{syllabus}', 'homeController@myPage');
我的函数如下所示:

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参数是非常耗费资源的。目前,我只检查数据库中的$Celletus参数,但通过这种方式,$org,$cat的任何值都可以毫无错误地传递。当然,我可以从数据库中检查所有参数,但我认为这不是使用这个很棒的框架处理URL的正确方法


更新:我还想让cat和组织成为可选的。

您是否只有一定数量的类别、组织等?如果是这样,Laravel会提供一个名为的功能,您可以对每个类别和组织执行类似的操作:

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

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

        Route::group(array('prefix' => 'myExam'), function()
        {
            Route::get('/', 'homeController@myPage');

        });

        Route::group(array('prefix' => 'myOtherExam'), function()
        {
            Route::get('/', 'homeController@myOtherPage');

        });
    });
});