class Post extends Model
{
/**
* Автор статьи.
*/
public function author()
{
return $this->belongsTo('App\User', 'id', 'user_id');
}
/**
* Ищем в промежуточной таблице, запись о том, что текущий пользователь добавил эту статью в закладки.
*/
public function bookmark()
{
return $this->belongsTo('App\Bookmark', 'post_id')->where('user_id', optional(auth())->id);
}
public function getIsBookmarkAttribute()
{
return !is_null($this->bookmark);
}
}
// Контроллер
$allPosts = Posts::with('author', 'bookmark')->get();
// Шаблон
@foreach ($posts as $post)
@if ($post->is_bookmark)
В избранном
@else
Добавить в избранное
@endif
@endforeach