Laravel:@foreach未定义变量

时间:2019-11-02 10:59:16

标签: php laravel

我有错误,但是在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);
    }

3 个答案:

答案 0 :(得分:1)

您应该像这样将参数传递给视图:

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

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

答案 1 :(得分:0)

检查以下代码是否为您提供了“没有信息”。 如果是这样,则意味着控制器中的$ 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 :(得分:0)

您可以使用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]);
}