【发布时间】:2017-08-08 17:57:30
【问题描述】:
我希望每个帖子都显示其总点赞数。
我的 Blade.php 文件中有一个这样的循环:
@foreach ($posts as $post)
<article class="post" data-postid="{{ $post->id }}">
<p>{{ $post->body }}</p>
<div class="info">
Posted by {{ $post->user->first_name }} on {{ $post->created_at }}
</div>
<div class="interaction">
{{ $countlike->where(['post_id' => $post->id])->get()->count() }}<a href="#" class="like"> {{ Auth::user()->likes()->where('post_id', $post->id)->first() ? Auth::user()->likes()->where('post_id', $post->id)->first()->like == 1 ? 'You Liked This Post' : 'Like' : 'Like' }}</a> |
{{ $countdislike->where(['post_id' => $post->id])->get()->count() }}<a href="#" class="like"> {{ Auth::user()->likes()->where('post_id', $post->id)->first() ? Auth::user()->likes()->where('post_id', $post->id)->first()->like == 0 ? 'You Disliked This Post' : 'Dislike' : 'Dislike' }}</a> |
@if(Auth::user() == $post->user)
<a href="#" class="edit">Edit Post</a> |
<a href="{{ route('post.delete', ['post_id' => $post->id]) }}">Delete</a>
@endif
</div>
</article>
<br>
@endforeach
这是我的控制器功能:
public function getDashboard(Request $request) {
$posts = Post::orderBy('created_at', 'desc')->get();
$countlike = Like::where(['like' => '1']);
$countdislike = Like::where(['like' => '0']);
return view('dashboard')->with(['posts' => $posts])->with(['countlike' => $countlike])->with(['countdislike' => $countdislike]);
}
虽然循环中的第一个帖子与 ORM 通信,但其余的则不。 我无法将 eloquent ORM 集成到 Blade.php 文件中的循环中,我在这里做错了什么?
【问题讨论】:
-
你能用不同的话解释一下,你到底想完成什么?
标签: php database laravel frameworks eloquent