【问题标题】:Laravel route group optional prefix not workingLaravel 路由组可选前缀不起作用
【发布时间】:2019-04-30 07:25:56
【问题描述】:

我有一些按前缀分组的路线,如下所示。但如果没有 URL 中的 {lang},它就无法工作。没有 {lang} 的 URL 将收到 404 错误。谁能猜出问题出在哪里?

路线

Route::group(['namespace' => 'Site', 'prefix' => '{lang?}', 
    'where' => array('lang' => 'en|fa')], function () {

    if (\Request::segment(1) !== 'panel' || \Request::segment(1) !== 'login') {
        $locale = \Request::segment(1);
        if (in_array($locale, ['fa', 'en'])) Illuminate\Support\Facades\App::setLocale($locale);
    }

    Route::get('/', 'HomeController@index')->name('home');
    Route::get('/about', 'AboutController@index')->name('about');
    Route::get('/portfolio', 'PortfolioController@index');
    Route::get('/portfolio/{category_id}/cat', 'PortfolioController@indexWithCategory');
    Route::get('/portfolio/loadmore/{category_id}/cat', 'PortfolioController@loadmore');
    Route::get('/portfolio/loadmore', 'PortfolioController@loadmore');
    Route::get('/portfolio/{id}/{title}', 'PortfolioController@show');
    Route::get('/articles', 'ArticleController@index');
    Route::get('/articles/{id}/', 'ArticleController@article_show');
    Route::get('/articles/{id}/{title}', 'ArticleController@article_show');
    Route::get('/blogs', 'ArticleController@blogs');
    Route::get('/blogs/{id}', 'ArticleController@show');
    Route::get('/blogs/{id}/{title}', 'ArticleController@show');
    Route::get('/faq', 'ArticleController@faq');
    Route::get('/contacts', 'ContactsController@index');
});

【问题讨论】:

  • 附言。 HomeController 有效!

标签: php laravel routes router


【解决方案1】:

不要使用可选参数作为前缀,前缀是关于在 url 开头使用修复参数,所以现在 laravel 路由不知道你的修复段到底是什么!!使用此路由组,您可以发送任何参数或字符串作为前缀,例如此路由 foo/about、bar/about、xxxx/about 所有这些都转到 about url

【讨论】:

【解决方案2】:

我认为问题在于可选的 lang 前缀。

只需将路线分为两类: 1. 有lang前缀

  1. 没有 lang 前缀

或者,最好在路由末尾使用 lang 而不是将其用作前缀。

【讨论】:

  • 分离的问题是控制器需要获取 lang 参数,所以我也应该分离控制器
猜你喜欢
  • 1970-01-01
  • 2017-03-13
  • 2018-01-08
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2019-03-04
  • 1970-01-01
相关资源
最近更新 更多