$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{
// Никто не добавлял в закладки данный пост
}
}
Тут надо скорее пинать этих дятлов с квартирами. Вполне могут генерить файл на лету, а не по крону.
У нас был один такой контрагент, крупный банк причем. Я им писал, чтобы проверили телефонную линию, а то модем, через который их веб-сервер подключен к интернету, не справляется с нагрузкой.
let STR = 'src="/sites/default/files/resize/m14/4m213/3567705_images_12175409452-.jpg" src="/sites/default/files/resize/afaf/5814f65f91ef731c793433fe5096e892-.jpg" src="/sites/default/files/resize/test/640m-.jpg" src="/sites/default/files/resize/5173.970-.jpg" src="/sites/default/files/resize/a/b/3/5main_br_xl-.jpg" src="/sites/default/files/resize/images/m8/image8-.jpg"';
let RES = STR.replace(/src=\"([^\"]+\/)([^\/]+\.jpg)\"/g, '/твой_новый_путь_до_картинки/$2');
console.log(RES);
Вот, локально на своём же сервере без всяких API можете использовать...
https://sypexgeo.net/ru/docs/