希望解决这个错误,当我试图向视图显示一些数据时,会遇到这个错误。我正在使用v5.7,我有一种感觉,它可能与我的控制器中的索引方法有关,我可能错了。如果需要更多的信息,请告诉我。
试图得到非对象的属性“弹格”(0)
路线:
Route::get('/category/{category}','BlogController@category')->name('category'); BlogCategory模型
namespace App;
use Illuminate\Database\Eloquent\Model;
class BlogCategory extends Model
{
protected $fillable = ['title', 'slug'];
public function posts()
{
return $this->hasMany(Post::class);
}
public function getRouteKeyName()
{
return 'slug';
}
}Post模型
public function category()
{
return $this->belongsTo(BlogCategory::class);
}控制器:
protected $limit = 3;
public function index()
{
$categories = BlogCategory::with(['posts' => function ($query) {
$query->published();
}])->orderBy('title', 'asc')->get();
$posts = Post::with('author')
->latestFirst()
->published()
// ->filter(request()->only(['term','year','month']))
->simplePaginate($this->limit);
return view('pages.frontend.blog.index', compact('posts', 'categories'));
}
public function category(BlogCategory $category)
{
$categoryName = $category->title;
$categories = BlogCategory::with(['posts' => function ($query) {
$query->published();
}])->orderBy('title', 'asc')->get();
$posts = $category->posts()
->with('author')
->latestFirst()
->published()
->simplePaginate($this->limit);
return view("pages.frontend.blog.index", compact('posts', 'categories', 'categoryName'));
}视图:
@foreach ($posts as $post)
<article class="post-item">
@if ($post->image_url)
<div class="post-item-image">
<a href="{{ route('blog.show', $post->slug) }}">
<img src="{{ $post->image_url }}" alt="">
</a>
</div>
@endif
<div class="post-item-body">
<div class="padding-10">
<h2>
<a href="{{ route('blog.show', $post->slug) }}">{{ $post->title }}</a>
</h2>
{!! $post->excerpt_html !!}
</div>
<div class="post-meta padding-10 clearfix">
<div class="pull-left">
<ul class="post-meta-group">
<li>
<i class="fa fa-user"></i>
<a href="#"> {{ $post->author->name }} </a>
</li>
<li>
<i class="fa fa-clock-o"></i>
<time> {{ $post->date }}</time>
</li>
<li>
<i class="fa fa-folder"></i>
<a href="{{ route('category', $post->category->slug) }}"> {{ $post->category->title }}</a>
</li>
<li>
<i class="fa fa-comments"></i>
<a href="#">4 Comments</a>
</li>
</ul>
</div>
<div class="pull-right">
<a href="{{ route('blog.show', $post->slug) }}">Continue Reading »</a>
</div>
</div>
</div>
</article>
@endforeach邮政表

博客猫表

发布于 2019-08-02 15:02:57
belongsTo函数在posts表中接受外键名称的第二个参数,如果不提供它,框架将尝试猜测外键列名是什么,在您的例子中是category(),因此框架正在搜索category_id,但是,您的外键列名是blog_category_id。
public function category()
{
return $this->belongsTo(BlogCategory::class, 'blog_category_id');
}发布于 2019-08-02 12:02:15
如果此视图与index方法相关,则应在控制器的索引中调用类别关系!
public function index()
{
$categories = BlogCategory::with(['posts' => function ($query) {
$query->published();
}])->orderBy('title', 'asc')->get();
$posts = Post::with('author')
->category()
->latestFirst()
->published()
// ->filter(request()->only(['term','year','month']))
->simplePaginate($this->limit);
return view('pages.frontend.blog.index', compact('posts', 'categories'));
}https://stackoverflow.com/questions/57325824
复制相似问题