【问题标题】:Laravel : @foreach Undefined variableLaravel:@foreach 未定义变量
【发布时间】:2020-02-28 09:53:06
【问题描述】:

我有错误,但在 foreach 中:未定义变量:信息 这是我的看法:

@foreach ($infos as $info)
    <tr>
        <td>{{ $info->id }}</td>
        <td>{{ $info->name}}</td>
        <td>{{ $info->code }}</td>
        <td>{{ $info->phone }}</td>
        <td>{{ $info->phone2 }}</td>
    </tr>
@endforeach

和我的控制器

    public function index()
    {
        $info = Info::latest()->get();
        return view('info.admin')->with('infos', $info);
    }

【问题讨论】:

标签: php laravel


【解决方案1】:

检查以下代码是否为您提供“没有信息”。 如果是这样,这意味着控制器中的 $infos 变量没有返回数据,从而给你错误

@if(empty($infos))
    <tr><td>There are no infos</td></tr>
@else
   @foreach ($infos as $info)
        <tr>
            <td>{{ $info->id }}</td>
            <td>{{ $info->name}}</td>
            <td>{{ $info->code }}</td>
            <td>{{ $info->phone }}</td>
            <td>{{ $info->phone2 }}</td>
        </tr>
    @endforeach
@endif

【讨论】:

    【解决方案2】:

    你可以用forelse会更好:

    @forelse($infos as $key => $info)
        <tr>
            <td>{{ $info->id }}</td>
            <td>{{ $info->name}}</td>
            <td>{{ $info->code }}</td>
            <td>{{ $info->phone }}</td>
            <td>{{ $info->phone2 }}</td>
        </tr>
    @empty
        <tr>
            <td>Data Not Found</td>
        </tr>
    @endforelse
    

    控制器:

    public function index()
    {
        $info = Info::latest()->get();
        return view('info.admin')->with(['infos'=> $info]);
    }
    

    【讨论】:

      【解决方案3】:

      你应该像这样向视图传递参数:

         return view('info.admin', ['infos' => $infos]);
      

      您在使用with 之前一直在做的事情有不同的效果,它将数据闪烁到会话中。 Check out this doc here

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2022-11-29
        • 2020-11-03
        • 2019-04-29
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多