【问题标题】:Laravel 8 Blade: syntax error, unexpected end of file, expecting elseif (T_ELSEIF) or else (T_ELSE) or endif (T_ENDIF)Laravel 8 Blade:语法错误,文件意外结束,期待 elseif (T_ELSEIF) 或 else (T_ELSE) 或 endif (T_ENDIF)
【发布时间】:2021-09-04 21:02:45
【问题描述】:

这个问题真的让我很头疼,所以如果我能得到任何帮助,我将不胜感激。 我不知道问题是我的组件还是我忽略了一些非常小而简单的东西。

我正在尝试有条件地在我的页面上显示一列,但由于某种原因,使用 @if @else @endif 不断抛出一个意外结束的错误。


@if ($isCsr)
    <x-table.table :headers="[
        ['name' => 'Name', 'align' => 'left'],
        ['name' => 'Owner', 'align' => 'left'],
        ['name' => 'Company', 'align' => 'left'],
        'Status',
        'Created',
        'Requests',
        'Progress']"
    >
@else
    <x-table.table :headers="[
        ['name' => 'Name', 'align' => 'left'],
        ['name' => 'Owner', 'align' => 'left'],
        'Status',
        'Created',
        'Requests',
        'Progress']"
    >
@endif

@foreach($projects as $project)
    <x-table.tr-a link="{{ route('project.show',$project->id) }}">
        <x-table.td align="left">{{$project->name}}</x-table.td>
        <x-table.td align="left">{{$project->user->name}}</x-table.td>
        <x-table.td align="left">{{$project->company->name}}</x-table.td>
        <x-table.td>
            {{$project->status->name}}
        </x-table.td>
        <x-table.td>{{$project->created_at->format('M d, Y')}}</x-table.td>
        <x-table.td>{{$project->requests->count()}}</x-table.td>
        <x-table.td>
            @if($project->requests->count() > 0)
            {{number_format(($project->requestsClosed->count() / $project->requests->count()) * 100)}} %
            @else
            Not Started
            @endif
        </x-table.td>
    </x-table.tr>
@endforeach
</x-table.table>

我试图仅在 $isCsr 为真时显示公司列。变量没有问题,也没有将其传递给视图。我可以在视图中渲染它,并且 livewire 过滤器与变量完美配合。

但只要我添加了 if-else-endif,它就会告诉我有一个意外的结束。我尝试了任意数量的 if-else 组合,甚至在原始 php 中尝试过。仍然没有运气。 文件中没有其他 if 语句,文件中稍后有一个,但它已关闭并且没有问题。只有当我在文件中的这一点添加 if-else-endif 时。

【问题讨论】:

  • 添加组件可能是个好主意
  • 看起来你还没有关闭 x 组件。关闭 x 组件所以我猜它可以工作
  • 该组件稍后关闭(我现在将添加完整代码。该组件在这里和其他任何地方都可以正常工作,只是在添加此 if 语句时不行
  • 您尝试过什么解决问题的方法?逐行检查这一点应该不会太难,看看是哪一个导致了问题

标签: php laravel laravel-blade


【解决方案1】:

看起来如果其他导致 x 组件 $slot.@endif 进入插槽。 所以你可以更好地做到这一点

@php 

$headers=$isCsr?[
        ['name' => 'Name', 'align' => 'left'],
        ['name' => 'Owner', 'align' => 'left'],
        ['name' => 'Company', 'align' => 'left'],
        'Status',
        'Created',
        'Requests',
        'Progress']:[
        ['name' => 'Name', 'align' => 'left'],
        ['name' => 'Owner', 'align' => 'left'],
        'Status',
        'Created',
        'Requests',
        'Progress'];
@endphp

    <x-table.table :headers="$headers">

【讨论】:

    猜你喜欢
    • 2018-10-17
    • 1970-01-01
    • 2021-09-16
    • 2018-04-03
    • 2018-11-06
    • 1970-01-01
    • 1970-01-01
    • 2017-10-30
    • 1970-01-01
    相关资源
    最近更新 更多