刀片模板中的意外 endforeach
Posted
技术标签:
【中文标题】刀片模板中的意外 endforeach【英文标题】:unexpected endforeach in blade template 【发布时间】:2014-08-02 19:25:25 【问题描述】:我在 laravel 的 laravel
中有一个 blade
模板,它显示一个选项卡视图。选项卡是不同的eventtypes
并且在选项卡中是每个类型的events
。这种观点直到今天都很好。唯一改变的是我可以软删除events
。
我得到的错误如下:
syntax error, unexpected 'endforeach' (T_ENDFOREACH)
这是整个模板的源代码:
@extends('master')
@section('title', '- Kalenderbeheer')
@section('head')
html::script('Script/lib/dataTables.js');
<script>
$(document).ready(function()
$("#EventTypeTabs").tab();
$(".eventtable").dataTable(
paging: false,
info: false,
"aoColumns": [
null,
null,
null,
"asSorting": []
]
);
$(".eventtable tr").click(function()
if ($(this).data("id"))
location.href = "/kalender/admin/" + $(this).data("id");
)
);
</script>
@stop
@section('body')
<div class="row">
<div class="col-md-6 col-md-offset-1">
<h1>Kalenderbeheer</h1>
</div>
<div class="col-md-4 rtl">
<a href="/kalender/admin/nieuw">Nieuwe activiteit toevoegen</a>
</div>
</div>
<div class="row">
<div class="col-md-10 col-md-offset-1">
<ul class="nav nav-tabs" style="margin-bottom: 15px;" id="EventTypeTabs">
@foreach ($eventtypes as $et)
<li @if($et->id == 1) class="active" @endif>
<a href="# $et->getFormattedName() " data-toggle="tab"> $et->name </a>
</li>
@endforeach
</ul>
<div class="tab-content eventtypetabs">
@foreach ($eventtypes as $et)
<div class="tab-pane fade @if ($et->id == 1)active in@endif" id=" $et->getFormattedName() ">
@if (count($et->events) > 0)
<table class="table table-striped eventtable">
<thead>
<tr>
<th>#</th>
<th>Datum</th>
<th>Naam</th>
<th></th>
</tr>
</thead>
<tbody>
<?php $c = 0; ?>
@foreach ($et->events as $event)
<tr data-id=" $event->id ">
<td> ++$c </td>
<td> preg_replace("/\d2:\d2:\d2/", "", $event->start) </td>
<td> $event->name </td>
<td>X</td>
</tr>
@endforeach
</tbody>
</table>
@endif
</div>
@endforeach
</div>
</div>
</div>
@stop
错误出现在最后一个@endforeach
。这是错误的屏幕截图:
【问题讨论】:
你在哪一行得到这个错误?你能发布完整的错误吗? 错误在最后一个@endforeach
,我加了截图。
【参考方案1】:
您只需要在@endif 之前添加一个空格(第 48 行)
<div class="tab-pane fade @if ($et->id == 1)active in @endif" id=" $et->getFormattedName() ">
另外,最好使用三元运算符:
class="tab-pane fade $et->id == 1 ? 'active in' :''"
【讨论】:
谢谢,这确实是错误。我刚刚通过查看编译后的视图发现了自己。 我也遇到了这个问题,这个解决了。这个问题似乎是因为我们升级了 Laravel 4.2;旧代码在 Laravel 4.1 中运行良好。以上是关于刀片模板中的意外 endforeach的主要内容,如果未能解决你的问题,请参考以下文章
如何从 Laravel5 中的刀片模板传递扩展主模板中的变量?