【问题标题】:How do I get iterations value in Laravel blade @each?如何在 Laravel Blade @each 中获得迭代值?
【发布时间】:2020-10-21 23:43:31
【问题描述】:

Laravel Documentation,我改变了这个:

<ul>
    @foreach($users as $user)
        <li>{{ $loop->iteration }}</li>
        <li>{{ $user->name }}</li>
        <li>{{ $user->email }}</li>
    @endforeach
</ul>

进入:

<ul>  
    @each('user.list', $users, 'user', 'user.empty')
</ul>

list.blade.php

<li>{{ $loop->iteration }}</li>
<li>{{ $user->name }}</li>
<li>{{ $user->email }}</li>

empty.blade.php

<li>There is no user is users.</li>

但是,我在{{ $loop-&gt;iteration }} 中收到错误“未定义变量:循环”

那么,有没有办法在 @each 中进行迭代?

【问题讨论】:

  • “我收到错误”不是对问题的有用描述。
  • 错误只是“未定义的变量:循环”
  • Laravel 5.1 发布超过 5 年;假设您没有使用如此古老的软件,请确保您正在查看当前文档!

标签: php laravel laravel-blade


【解决方案1】:

正如in the documentation解释的那样:

通过@each 渲染的视图不会从父视图继承变量。如果子视图需要这些变量,您应该改用@foreach@include

因此,您的代码不会从处理循环的父视图继承 $loop 变量。

这样的事情可能会奏效:

@if (count($users)
    @foreach ($users as $user)
        @include("user.list", compact("user", "loop"))
    @endforeach
@else
    @include("user.empty")
@endif

【讨论】:

  • 好的,我明白了。 @miken32 你能回答这个问题stackoverflow.com/questions/64421225/…。虽然,我接受了我自己问题的答案,但现在我在/logout route 遇到了同样的错误。
猜你喜欢
  • 2023-04-07
  • 1970-01-01
  • 2016-06-15
  • 2017-08-01
  • 2019-02-15
  • 1970-01-01
  • 1970-01-01
  • 2020-05-21
  • 1970-01-01
相关资源
最近更新 更多