首页 > 解决方案 > 静态控制器多路由/单控制器

问题描述

我试图找到一个可以完成这项工作的答案,但我发现的答案对我来说并不合适,我的网站有一个静态部分,我可以正常安排路线,如下面的代码所示。

重复相同的路线超过 7 页似乎很混乱,必须有更聪明的方法来做,我需要一些意见,也许是带有 slug 或其他东西的控制器,但我不太明白该怎么做它带有这样的站点的静态部分。

谢谢。

Route::get('/first/home', function()
{
    return View::make('/first.home');
});

 Route::get('/first/aboutus', function()
{
    return View::make('/first.aboutus');
});
Route::get('/first/contact', function()
{
    return View::make('/first.contact');
});

标签: laravel

解决方案


我有一种感觉,你来自 WP,或者我错了。无论如何,Laravel 有一个差异。在提供静态页面方面的球赛。

现在,在您澄清之后,我建议您将路线分组,如下所示:

Route::group(['prefix' => 'first'], function () {
    Route::get('(.*)', 'HomeController@getPageByName');
});

HomeController你可以编写如下函数:

function getPageByName(Request $request) 
{
    $pageName = $request->path();
    //since your url does not begin with the page but with 'first',
    //best is to turn this into an array.
    $parsedPath = explode("/",$pageName)
    $data = 'any data you want to pass';
    if(View::exists($pageName[1] ){
       return view($pageName[1] , compact($data));
    } else {
        abort(404)
    }
}

如果您想要第一页,基本上您的网址将如下所示:

http://example.com/first/home

现在 Laravel 会寻找views/home.blade

让我知道这是否对您的问题有帮助。


推荐阅读