Loading... 在laravel blade 模板中 `@each` 在实现数据的循环时比`@foreach`更加的强大和优雅,但是常常被忽视了。 ### @foreach 假设现在你需要循环你的文章的所有评论。你可能会像下面这样写: ```php @if(count($article->comments) > 0) @foreach($article->comments as $comment) @include('comments.item') @endforeach @else @include('comments.no-items') @endif ``` 这看起来相当的乱,你可能会想到使用@forelse 来实现更好。 ### @forelse ```php @forelse($article->comments as $comment) @include('comments.item') @empty @include('comments.no-items') @endforelse ``` 好些了但是仍然感觉有点乱,几乎所有的@forelse 我们都要包含@empty语句。我们可以使用@each 来仅用一条语句来实现这个循环。 ### @each ```php @each('comments.item', $article->comments, 'comment', 'comments.no-items') ``` 就这样,没有条件判断没有缩进。 参数分别为: 1. 循环的单个视图。 2. 需要循环的数据。 3. 赋予当前循环的变量。 4. 当被循环的数据被空时被渲染的视图(可选项)。 因为视图部分的名字都具有描述性,一看就明白怎么回事,所以也就不需要@empty 这样的提示了 Last modification:March 7, 2023 © Allow specification reprint Like 如果觉得我的文章对你有用,请随意赞赏