Php 在laravel 5.4中有许多雄辩的关系

Php 在laravel 5.4中有许多雄辩的关系,php,laravel,eloquent,relation,Php,Laravel,Eloquent,Relation,我尝试获取登录用户的帖子数量count,以便向登录用户显示到目前为止他们发布了多少帖子或评论: 到目前为止,我拥有的是posts表中的author\u id列,该列将引用用户id 这是我的Post型号: <?php namespace App; use Illuminate\Database\Eloquent\Model; class Post extends Model { public function author() { return $thi

我尝试获取登录用户的帖子数量
count
,以便向登录用户显示到目前为止他们发布了多少帖子或评论:

到目前为止,我拥有的是
posts
表中的
author\u id
列,该列将引用用户id

这是我的
Post
型号:

<?php

namespace App;

use Illuminate\Database\Eloquent\Model;

class Post extends Model
{


    public function author() {

        return $this->belongsTo('App\User');
    }

}
<?php

namespace App;

use Illuminate\Notifications\Notifiable;
use Illuminate\Foundation\Auth\User as Authenticatable;

class User extends Authenticatable
{
    use Notifiable;

    protected $table = 'users';

    /**
     * The attributes that are mass assignable.
     *
     * @var array
     */
    protected $fillable = [
        'role_id',
        'email',
        'password',
        'name',
        'avatar',
        'remember_token',
        'created_at',
        'updated_at'
    ];

    /**
     * The attributes that should be hidden for arrays.
     *
     * @var array
     */
    protected $hidden = [
        'password', 'remember_token',
    ];


    public function posts()
    {
        return $this->hasMany('Post', 'author_id');
    }


}
这是我的
PostController

<?php

namespace App\Http\Controllers;

use Illuminate\Http\Request;
use App\Post;
use App\Auth;
use App\User;

class PostController extends Controller
{
    /**
     * Display a listing of the resource.
     *
     * @return \Illuminate\Http\Response
     */
    public function index()
    {
        $posts = Post::orderBy('created_at', 'desc')->paginate(15);
        $countTodayOrders = Post::whereRaw('Date(created_at) = CURDATE()')->count();

        return view('theme.index',  compact('posts', 'countTodayOrders'));
    }

    /**
     * Show the form for creating a new resource.
     *
     * @return \Illuminate\Http\Response
     */
    public function single($slug) {
        $post = Post::where('slug', '=', $slug)->first();
        $countTodayOrders = Post::whereRaw('Date(created_at) = CURDATE()')->count();
        return view('theme.single', compact('post', 'countTodayOrders'));
    }

    /**
     * Store a newly created resource in storage.
     *
     * @param  \Illuminate\Http\Request  $request
     * @return \Illuminate\Http\Response
     */
    public function store(Request $request)
    {
        //
    }
}
好吧,我想起来了:)

我忽略了所有模型角色,直接使用了从数据库插入的控制器数据,并将其与用户id进行比较,如果它为真(相同),则返回数字

这是您需要的代码
PostController

public function index()
    {
        $posts = Post::orderBy('created_at', 'desc')->paginate(15);
        $countTodayOrders = Post::whereRaw('Date(created_at) = CURDATE()')->count();
        $postscount = DB::table('posts')
            ->whereExists(function ($query) {
                $query->select(DB::raw(1))
                      ->from('users')
                      ->whereRaw('author_id = id');
            })
            ->get();

        return view('theme.index',  compact('posts', 'countTodayOrders', 'postscount'));
    }

顺便说一句,你在当天发布的帖子中得到了什么。