如何为路由添加动态前缀?

时间:2016-12-27 14:00:54

标签: laravel laravel-5 laravel-5.2

在会话中,我设置了例如de的默认语言代码。现在我想在链接中有这样的东西:www.something.com/de/something。

问题是我无法访问路线中的会话。有什么建议我怎么办?

  $langs = Languages::getLangCode();
    if (in_array($lang, $langs)) {
      Session::put('locale', $lang);
      return redirect::back();
    }
    return;

Route::get('blog/articles', 'StandardUser\UserBlogController@AllArticles');

所以我需要传递给路由作为此区域设置会话的前缀。

2 个答案:

答案 0 :(得分:1)

如果要使用当前语言的代码生成到您的路线的链接,则需要使用以下动态前缀创建路线组:

Laravel 5.7 中的示例:

def print_filenames(): 
    filenames = tf.train.match_filenames_once("../input/test/*_green.png")
    with tf.Session() as sess:
        sess.run(tf.local_variables_initializer())
        print(sess.run(filenames))

使用命名路由时,将自动生成使用当前语言代码进行路由的URL。

示例链接

Route::prefix(app()->getLocale())->group(function () {
    Route::get('/', function () {
        return route('index');
    })->name('index');

    Route::get('/post/{id}', function ($id) {
        return route('post', ['id' => $id]);
    })->name('post');
});

注意:您可以使用自己的http://website.com/en/ http://website.com/en/post/16 方法来代替laravel app()->getLocale()方法。

如果您对此主题还有其他疑问,请让我知道。

答案 1 :(得分:0)

也许

Route::group([
    'prefix' => Languages::getLangCode()
], function () {
    Route::get('/', ['as' => 'main', 'uses' => 'IndexController@index']);
});
相关问题