laravel 5.1中的动态url段名称


Dynamic url segment name in laravel 5.1

事实上,我正在寻找获取url段并将其替换为另一个字符串名称的方法,例如/setting在我的视图中显示阿拉伯语中的الضبط

经过研究,我发现substr_replacestr_ireplace可以做到这一点如下所示:

  $seg2 = request()->segment(2);
 ($seg2 == 'setting') ? $seg2 = str_ireplace($seg2,'الضبط',$seg2) : $seg2 = str_ireplace($seg2,'another_segment_name', $seg2);

我认为这种方法非常糟糕,如果我有很多不同的路线可以在$seg2的地方。

如果有任何其他方法可以实现这一点,请帮助我,谢谢

在我看来,你可以使用本地化文件,我的意思是,你可以用Laravel的本地化功能。例如,将messages.php文件放在resources/lang/ar文件夹中,可以映射key => value对,如:

<?php
return [
    'settings' => 'الضبط',
    'otherKey' => 'some Arabic word'
];

然后,您可以像以下那样使用它(它将用适当的值替换设置):

echo trans('messages.' . request()->segment(2));
// Or use this for blade template
{{ trans('messages.' . request()->segment(2)) }}

要使其工作,您需要在config/app.php文件中将语言环境(默认语言)设置为ar,但您可以自动调整它,我的意思是,您可以在运行时设置语言环境。希望你明白了,只要好好读一下文件就行了。顺便说一句,这只是一个想法,如果有必要,你可以采取不同的做法。

感谢@The Alpha的帮助事实上,我现在已经满足了我的需求,但我做了一些改变来实现它,我会向其他人展示它以寻求帮助

起初,我在resources/lang/ar中创建了segments.php文件,并在config/app.php 中将本地语言更改为ar

和在CCD_ 15 中

<?php
// Segments Array for navigation paths on view  
return [
  'users' => 'المستخدمين',  //maybe to be seg2
  'settings' => 'الضبط',   //also maybe to be seg2
];

在我看来

<!-- Simple condition to check if user on segment 2 or not and fetch the proper segment name according to incoming segment in url -->
            {{(request()->segment(2) != '') ? trans('segments.'.request()->segment(2)) : '' }}