Сервис который выдаёт информацию об IP, страну, город, данные об провайдере и т.д и т.п. (ipdata)
$CURRENT_USER_ID = \Auth::user()->id;
$rsPost = Post::with([
'bookmark_users' => function($q) use($CURRENT_USER_ID) {
$q->where('id', $CURRENT_USER_ID);
}
])
->where('id', 'ID_НОВОСТИ')
->first();
if($rsPost) {
if($rsPost->bookmark_users->count() > 0) {
// Удалить
}else{
// Добавить
}
}
а как лучше проверять в таком случае на наличие закладки на странице с самой новостью?
Через связь bookmark_users это для каждого пользователя будет создаваться запрос.
<?php
$posts = Post::with(['bookmark_users'])
->get();
foreach ($posts as $item) {
if($item->bookmark_users->count() > 0) {
// Пост добавлен в закладки одним или несколькими юзерами
}else{
// Никто не добавлял в закладки данный пост
}
}