在会话中,我设置了例如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');
所以我需要传递给路由作为此区域设置会话的前缀。
答案 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']);
});