未定义变量foreach laravel

时间:2019-11-01 09:51:18

标签: laravel

视图

@foreach($post as $ps)
    <div class="card">
        <div class="card-header">
            <img src="{{asset('img/python.png')}}" class="circle" width="20" height="20">&nbsp;<b style="color:black;">{{ Auth::user()->name }}</b>
        </div>
        <div class="card-body">
            <center><img src="{{ str_replace('public/', '', $ps->image) }}" alt="" style="width: 100%;" height="320"></center>
        </div>
        <div class="card-footer text-muted">
            <b style="color:black;">{{ Auth::user()->email }}</b><br>
            {{$ps->caption}}
        </div>
    </div>
    <br><br>
@endforeach

控制器

public function index()
{
    $post=Post::all();

    // dd($id);
    return view('home', $post);
}

错误

  

帖子(查看:   D:\ xampp \ htdocs \ bima_1202174034 \ Modul5 \ resources \ views \ home.blade.php)

3 个答案:

答案 0 :(得分:2)

您必须使用

view

public function index()
{
        $post = Post::all();

        // dd($id);
        return view('home', compact('post'));
}

用于良好实践

public function index()
{
    $post=Post::all();
    return view('home', compact('post'));
}

可见

 return view('home')->with('post', $post);

答案 1 :(得分:1)

有很多方法可以将variable的{​​{1}}传递到view,但是始终使用controller来将compactvariable传递到{{ 1}}例如

controller

要了解有关此信息的更多信息,请访问文档以详细了解Passing Data To Views

谢谢

答案 2 :(得分:0)

您需要更改代码

public function index()
{
        $post = Post::all();

        return view('home', $post)  //This is not perfect way

        return view('home', compact('post'));//This is right way
}