如何清理这段代码?使用 laravel 将每四个帖子插入一行
How to clean this code up? Insert every four posts into a row with laravel
我目前有这段代码:
<div class="row">
<?php $i = 1; ?>
@foreach($contest->submissions as $submission)
<div class="col-md-3">
<a href="/contests/{{ $contest->id }}/submissions/{{ $submission->id }}">
{!! HTML::image('/images/' . $submission->filename) !!}
</a>
</div>
@if($i % 4 == 0)
</div><div class="row">
@endif
<?php $i++; ?>
@endforeach
</div>
我一次将 4 个提交内容塞进一行,就像我在 wordpress 帖子中那样做。使用取模运算符检查余数。
尽管这段代码感觉真的很乱,但拼凑在一起。我正在使用 laravel 5 任何人都可以帮助进一步清理它并使它看起来更紧凑和更整洁吗?
您的代码没有任何问题,没有被黑客入侵的感觉,您只是以正常方式显示了一个集合。我可以建议一些更改,但没有绝对必要:
1. 摆脱 $i
变量的手动声明和递增,因为您已经可以从 [=14] 访问集合的索引=] 语句:
@foreach($contest->submissions as $i => $submission)
...
@endforeach
2. 为你使用 named route URL(这将使更改 URL 结构变得容易路线定义,避免为了改变它而遍历每一个使用它的地方):
Route::get('/contests/{contestId}/submissions/{submissionId}', ['as' => 'contest.submissions', ...]});
最终结果将如下所示:
<div class="row">
@foreach ($contest->submissions as $i => $submission)
<div class="col-md-3">
<a href="route('contest.submissions', [$contest->id, $submission->id])">
{!! HTML::image('/images/' . $submission->filename) !!}
</a>
</div>
@if (($i + 1) % 4 == 0)
</div><div class="row">
@endif
@endforeach
</div>
仅仅因为Laravel表达力和简洁性,并不意味着您可以用两行代码完成其中的所有事情。
我目前有这段代码:
<div class="row">
<?php $i = 1; ?>
@foreach($contest->submissions as $submission)
<div class="col-md-3">
<a href="/contests/{{ $contest->id }}/submissions/{{ $submission->id }}">
{!! HTML::image('/images/' . $submission->filename) !!}
</a>
</div>
@if($i % 4 == 0)
</div><div class="row">
@endif
<?php $i++; ?>
@endforeach
</div>
我一次将 4 个提交内容塞进一行,就像我在 wordpress 帖子中那样做。使用取模运算符检查余数。
尽管这段代码感觉真的很乱,但拼凑在一起。我正在使用 laravel 5 任何人都可以帮助进一步清理它并使它看起来更紧凑和更整洁吗?
您的代码没有任何问题,没有被黑客入侵的感觉,您只是以正常方式显示了一个集合。我可以建议一些更改,但没有绝对必要:
1. 摆脱 $i
变量的手动声明和递增,因为您已经可以从 [=14] 访问集合的索引=] 语句:
@foreach($contest->submissions as $i => $submission)
...
@endforeach
2. 为你使用 named route URL(这将使更改 URL 结构变得容易路线定义,避免为了改变它而遍历每一个使用它的地方):
Route::get('/contests/{contestId}/submissions/{submissionId}', ['as' => 'contest.submissions', ...]});
最终结果将如下所示:
<div class="row">
@foreach ($contest->submissions as $i => $submission)
<div class="col-md-3">
<a href="route('contest.submissions', [$contest->id, $submission->id])">
{!! HTML::image('/images/' . $submission->filename) !!}
</a>
</div>
@if (($i + 1) % 4 == 0)
</div><div class="row">
@endif
@endforeach
</div>
仅仅因为Laravel表达力和简洁性,并不意味着您可以用两行代码完成其中的所有事情。