【问题标题】:How to use @break in ternary operatory to break foreach loop in laravel blade file?如何在三元运算符中使用@break来打破laravel刀片文件中的foreach循环?
【发布时间】:2018-10-07 22:09:00
【问题描述】:

我在 Laravel 做项目。我在刀片文件中有 foreach 循环我想在满足条件时打破 foreach 循环,但在这种情况下,我使用了三元运算符,在这个运算符中我想打破我的 foreach 循环。 这是我的刀片文件,

@foreach($user->preference_attributes as $attributes)

<tr>
            <th>{{ trans('labels.backend.access.users.tabs.content.overview.location') }}</th>
            <td>{!!($attributes->name == 'location') ? $attributes->pivot->value @break : '' !!}</td>
        </tr>

@endforeach

我已经这样做了,但它不起作用。我不知道如何用三元运算符打破这个。提前致谢。

【问题讨论】:

  • 不在这里,我想用不使用 if else 的三元运算符打破这个循环
  • 试着把这个$attributes-&gt;pivot-&gt;value @break改成break
  • 我试过了,但没用

标签: php laravel


【解决方案1】:

你不能这样做

{!!($attributes->name == 'location') ? $attributes->pivot->value @break : '' !!}

在您的错误情况下,blade 被转换为PHP 文件,这里有一个非常明显的语法错误,这就是为什么您必须在{{ }}{!! !!} 中使用PHP 语法

这不是真正的原因,我收回这句话,只是因为PHP语法限制不能这样写

不可能实现在三元运算符中使用
当代码转换为 &lt;?php echo e($attributes-&gt;name == 'location' ? $attributes-&gt;pivot-&gt;value : ''); ?&gt; 三元运算符是函数e()的参数,考虑这个错误例子 functionName( 'someStringParameter'; break; ) 你找到问题了吗?

试试这个

<tr>
    <th>{{ trans('labels.backend.access.users.tabs.content.overview.location') }}</th>
    <td>
        @if($attributes->name == 'location')
            {!! $attributes->pivot->value !!}
            @break
        @endif
    </td>
</tr>

【讨论】:

  • 那是不是,我不能在三元运算符中使用break?
  • 是的,我明白了……那么这可能是一个案例。让我们看看我是否能解决这个问题,然后我会支持你的答案
【解决方案2】:

你不能用if方法?

@if($attributes->name == 'location')
{{ $attributes->pivot->value}} @break
@endif

【讨论】:

  • 感谢您的回复,但我想使用三元运算符
  • 我觉得应该没有你想要的效果,如果不输出值,可以使用@break($attributes->name = 'location')。
  • 实际上表单包含太多列表项,这就是为什么我不想使用 if else
【解决方案3】:

试试这样不确定

{{ $attributes->name == 'location' ? $attributes->pivot->value @break : '' }}

【讨论】:

    猜你喜欢
    • 2017-12-24
    • 1970-01-01
    • 2018-04-04
    • 1970-01-01
    • 2014-12-19
    • 2017-10-24
    • 2017-11-13
    • 2014-12-05
    • 2018-03-21
    相关资源
    最近更新 更多