Har*_*ist 0 php foreach loops laravel
我有一个表单,其中显示四个文本字段输入。当前app()->getLocale()输入显示在左侧,下面的代码适用于显示在右侧的其余 3 个语言环境:
@foreach(['ca','en','es','nl'] as $lang)
@if(app()->getLocale() == $lang) @continue @endif
<li>
<a href="#{{ $lang }}" class="@if($loop->first) active @endif"
</li>
@endforeach
Run Code Online (Sandbox Code Playgroud)
这些都是隐藏的菜单选项卡,只有第一个选项卡应显示为活动状态,因此:
@if($loop->first) active @endif
Run Code Online (Sandbox Code Playgroud)
然而问题是,当当前语言环境是 时ca,语言环境也$loop->first()将是ca。并且这个不能是活动的,因为它永远不会显示在右侧。
我正在尝试找到一个简单的解决方案,而无需太多的if else事情。此外,数组['ca','en','es','nl']将针对来自 的某些数据进行更改config,因此稍后会有更多语言环境,并且ca并不总是第一个。所以我无法进行检查,@if(app()->getLocale() == 'ca')因为这种情况将来也会改变。
小智 5
代替:
['ca','en','es','nl']
Run Code Online (Sandbox Code Playgroud)
和:
array_diff(['ca','en','es','nl'], [app()->getLocale()])
Run Code Online (Sandbox Code Playgroud)
并删除这个:
@if(app()->getLocale() == $lang) @continue @endif
Run Code Online (Sandbox Code Playgroud)
这将从数组中删除代表当前语言的项目。