【问题标题】:Blade returns undefined offset刀片返回未定义的偏移量
【发布时间】:2017-03-17 15:39:19
【问题描述】:

我已经开始学习 PHP Laravel,但我在一些事情上有些挣扎(可能很微不足道)。当我呈现我的页面时,我看到以下错误:

BladeCompiler.php 第 584 行中的 ErrorException:未定义偏移量:1

控制器

位于\App\Http\Controllers\CompanyController.php

namespace App\Http\Controllers;

use App\Company;
use Illuminate\Http\Request;

class CompanyController extends Controller
{

    function index()
    {
        $companies = Company::all();

        // return $companies;
        return view('public.company.index', compact('companies'));
    }

}

查看

位于 \App\resources\views\public\company\index.blade.php

@extends('public.layout')

@section('content')
    Companies
    @foreach $companies as $company
        {{ $company->title }}
    @endforeach
@stop

当我在控制器中取消注释 return $companies 时,我确实有结果,但是.. 我不确定为什么我的 - 非常简单的 - 视图没有呈现。谁能帮帮我?

【问题讨论】:

  • 您确定退回的收藏中有列标题吗?
  • 是的,这是一个愚蠢的语法错误。感谢您调查我的问题。

标签: php laravel-5 blade


【解决方案1】:

错误指出编译刀片文件时出现问题,可能是由于语法错误。 因此,只需将 foreach 变量包装在括号内,问题就应该得到解决。

@extends('public.layout')

@section('content')
    Companies
    @foreach ($companies as $company)
        {{ $company->title }}
    @endforeach
@stop

【讨论】:

  • 你让我很开心,谢谢;我查看了一个多小时的代码,知道这将是微不足道的。我很确定我不会再忘记这个语法了;)
【解决方案2】:

检查是否设置了$companies

@extends('public.layout')

@section('content')
    @if(isset($companies))
        Companies
        @foreach $companies as $company
            {{ $company->title }}
        @endforeach
    @else
        {{-- No companies to display message --}}
    @endif
@stop

【讨论】:

  • 你为什么要这么说? Compact 是一个非常下降的 PHP 函数,用于将数据传递给 laravel 视图。
  • 感谢您的建议,但我想保持我的观点干净,避免不必要的检查。它恰好是一个语法错误。感谢您调查我的问题。
【解决方案3】:

这让我发疯了。问题是我在注释代码中包含了这样的内容:

// Never ever should you have a @ in comments such as @foreach 
// The reason is the blade parser will try and interpret the @directive
// resulting in a cryptic error: undefined index 1

我希望这对某人有所帮助。花了太多时间注释掉我所有的 @foreach in code 才发现是一个指令 in cmets 首先导致了问题。

【讨论】:

  • 这是刀片模板中的一个非常愚蠢的缺陷。评论不应被解析为逻辑。
猜你喜欢
  • 1970-01-01
  • 2013-08-18
  • 2011-03-13
  • 2017-06-17
  • 2023-03-13
  • 1970-01-01
  • 2022-01-02
  • 2013-01-25
相关资源
最近更新 更多