Php 如何在Laravel4中创建多级url结构?
我希望为所有参数创建一个URL结构,如site.com/mycat/myorg/myexam/mysyllabus和site.com/mycat/myorg/myexam等 目前,我正在将参数从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) {
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');
});
});
});