Laravel 如何在“post sayı”列中显示用户的帖子数量?
如何在post sayı列中显示我的用户帖子数 这是我的用户。刀片:Laravel 如何在“post sayı”列中显示用户的帖子数量?,laravel,post,count,Laravel,Post,Count,如何在post sayı列中显示我的用户帖子数 这是我的用户。刀片: @extends('layouts.app') @section('users') <table class="table"> <thead> <tr> <th scope="col"></th> <th scope="col">Ad</t
@extends('layouts.app')
@section('users')
<table class="table">
<thead>
<tr>
<th scope="col"></th>
<th scope="col">Ad</th>
<th scope="col">Email</th>
<th scope="col">Səlahiyyət</th>
<th scope="col">Post sayı</th>
<th scope="col">Düzəlişlər</th>
</thead>
<tbody>
@foreach ($users as $user )
<tr>
<th scope="row">{{$user->id}}</th>
<h4 class="media-heading"> <td><a href="posts/{{$user->id}}" class="anchor-username">{{$user->name}} </a></td></h4>
<td>{{$user->email}}</td>
<td>{{$user->getRoles['name']}}</td>
<td>{{$user->getPost['user_id']}}</td>
<td><a href="{{route('delete',['id'=>$user->id])}}">Sil</a><br><a href="{{route('edit',['id'=>$user->id])}}">Düzəlt</a></td>
@endforeach
</tbody>
</table>
@endsection
我的用户模型:
public function getRoles()
{
return $this->hasOne('App\Role', 'id', 'role_id');
}
public function getPost()
{
return $this->hasOne('App\Post', 'user_id', 'id');
}
因为您的控制器中有:$posts=Post::where'user_id',$id->get 您可以在视图中执行此操作:{{$posts->count} 然而,我建议使用所建议的雄辩的关系 您的模型在getPost中应该有一个hasMany关系,应该重命名为getPosts或just posts IMO 此外,确保您的帖子模型包含与用户模型的belongsTo关系
public function user()
{
return $this->belongsTo('App\User');
}
然后,您可以从控制器中更换以下部件:
$posts = Post::where('user_id', $id)->get();
return view('posts', compact('posts'));
与:
最后,在视图中,它将如下所示:{{$user->posts->count}}*posts是关系的名称
或者:{{auth->user->posts->count}}对于经过身份验证的用户,我认为您不会使用它,因为我认为您在您的示例中正在执行类似于管理CRUD的操作
希望能有帮助 我尝试过这个解决方案,但没有成功。请同时显示您的用户模型,以便我们可以查看您的关系{{{$user->getPost['user\u id']->count}}我尝试过该解决方案,但它在空视图上对成员函数count进行错误调用:C:\xampp\htdocs\site\resources\views\users.blade.php我更新并添加用户模型欢迎访问so。。。基于这些关系,用户只能有0篇或1篇文章,所以你只想知道他们是否有一篇?正如@lagbox已经说过的,如果你使用hasOne关系,你最多有1篇文章,也许你需要使用hasMany关系?
public function posts()
{
return $this->hasMany('App\Post');
}
public function user()
{
return $this->belongsTo('App\User');
}
$posts = Post::where('user_id', $id)->get();
return view('posts', compact('posts'));
return view('posts');