【问题标题】:unexpected endforeach in blade template刀片模板中的意外 endforeach
【发布时间】: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("/\d{2}:\d{2}:\d{2}/", "", $event->start) }}</td>
                        <td>{{{ $event->name }}}</td>
                        <td>X</td>
                    </tr>
                    @endforeach
                    </tbody>
                </table>
                @endif
            </div>
            @endforeach
        </div>
    </div>
</div>
@stop

错误出现在最后一个@endforeach。这是错误的屏幕截图:

【问题讨论】:

  • 你在哪一行得到这个错误?你能发布完整的错误吗?
  • 错误在最后一个@endforeach,我加了截图。

标签: laravel foreach blade


【解决方案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 中运行良好。
猜你喜欢
  • 1970-01-01
  • 2018-04-26
  • 2014-03-01
  • 1970-01-01
  • 2013-04-29
  • 2018-07-26
  • 2015-08-05
  • 2017-04-03
相关资源
最近更新 更多