Answer the question
In order to leave comments, you need to log in
How do I know if an article has been bookmarked?
Tables:
posts
users
posts_user - intermediate - bookmarks
$table->bigIncrements('id');
$table->integer('user_id');
$table->integer('post_id');
$allPosts = Posts::with('users')->get();
class Posts extends Model
{
//получить автора статьи
public function users()
{
return $this->hasMany('App\User', 'id', 'user_id');
}
Answer the question
In order to leave comments, you need to log in
In the controller
$id = Auth::id();
//К каждой статье добавляем users_count,
//чтобы узнать какие статьи уже добавлены в избранное авторизованного юзера
// и не делать потом запросы к бд в цикле
$posts = Post::with('users')
->withCount(array('users' => function($query) use ($id) {
$query->where('users.id', $id);
}))->get();
{{-- если количество больше нуля, значит статья уже добавлена в избранное --}}
@foreach ($posts as $post)
@if ($post->users_count>0)
Уже добавлено в избранное
@else
Добавить в избранное
@endif
@endforeach
public function users() {
return $this->belongsToMany('App\User', 'posts_user', 'post_id', 'user_id');
}
Didn't find what you were looking for?
Ask your questionAsk a Question
731 491 924 answers to any question