首页 > 解决方案 > 方法 Illuminate\Database\Eloquent\Collection::post 不存在

问题描述

抱歉这么愚蠢的问题,但我现在处于死胡同,我正在使用 Laravel(第一次顺便说一句)做一个个人项目,我遇到了一些问题。

我尝试这样做{{ $kategori->post()->count() }}(顺便说一句,这是可行的),但是使用了用户表。我已经设置了外键和东西。

我也尝试修改User.php(参见代码)但仍然没有按我的预期工作。我需要一些帮助。我正在使用 Laravel “ php artisan make:auth

我已经尝试编辑模型(User.phpPost.php)和控制器,但我仍然无法弄清楚出了什么问题。

Post.php

public function user()
{
    return $this->belongsTo('App\User', 'user_id');
}

用户.php

public function post()
{
   return $this->hasMany('App\Post','user_id');
}

控制器

use App\User;

// other methods in the Controller

public function index()
{
   $posts = post::paginate(5);
   $user = User::post;
   return view('index', compact('posts', 'user'));   
}

刀片视图

{{ $user->post()->count() }}

标签: laraveleloquentlaravel-5.8

解决方案


我不明白源代码的主要目的但是您可以使用以下代码来计算关系

$user_post_count = User::find($id)->post()->count();
$all_user_with_post = User::all()->with('post');
$all_user_with_post_count = User::all()->withCount('post');

推荐阅读