ErrorException为foreach()提供了无效的参数

时间:2019-06-30 03:32:26

标签: php laravel

因此,我试图通过id从数据库获取完整的帖子,因此当我单击此链接<a href="{{ route('post.read', ['blog_id' => $blog->id]) }}" class="read-more">Lanjutkan Baca <img src="asset/img/icons/double-arrow.png" alt="#"/></a>时,它将带我到url /post/read/{id}并给我完整的帖子,但它表明错误

我搜索相同的问题,发现问题是$ blogs变量是一个数组,但返回的值不是,有人可以告诉我如何在我的代码中使方法或视图返回数组并显示完整的帖子?

这是我的观点read.blade.php

@foreach ($blogs as $blog)
                <div class="top-meta">{{ Carbon\Carbon::parse($blog->created_at)->format('d-m-Y')  }} /  di <a href="">Rakitan</a></div>
                    <h3>{{ $blog->name }}</h3>
                    <p>{!! $blog->message !!}</p>
@endforeach

这是我的BlogController.php

public function getFullPost($blog_id) {
        $blogs = Blog::all()->where('blogs.id', '=', $blog_id)->first();
        return view('post.read')->with(compact('blogs'));
    }

这是模型Blog.php

<?php

namespace App;

use Illuminate\Database\Eloquent\Model;

class Blog extends Model
{
    protected $fillable = ['name','message'];
}

这是路线

Route::get('/post/read/{blog_id}', 'BlogController@getFullPost')->name('post.read');

1 个答案:

答案 0 :(得分:1)

使用'get'方法获取带有条件的所有行

  public function getFullPost($blog_id) {
    $blogs = Blog::where('id', '=', $blog_id)->get();
    return view('post.read')->with(compact('blogs'));
  }

在模型中添加表名称以在Blog模型中引用