Как извлечь записи из таблицы базы данных в Laravel и предотвратить те, срок действия которых истек - PullRequest
0 голосов
/ 14 января 2020

Итак, у меня есть таблица в MySQL, которая выглядит следующим образом

enter image description here

Это в основном объявления, которые публикуются пользователями. В столбце «Продолжительность» этой таблицы указано, сколько дней пользователь хочет показывать свое объявление. это означает, что если пользователь решил разместить объявление в течение 3 дней, я не должен показывать его только через 3 дня, это означает, что срок его действия истечет через три дня. Теперь я хочу получить только те записи, которые не просрочены. Я много искал, но не мог найти способ сделать это. Пожалуйста, дайте мне решение или обратитесь по ссылке, где я могу найти решение.

Сейчас я использую этот скрипт для получения записей с простой нумерацией страниц

$items=Post::with('items','users')->paginate(12);
$categories = DB::table('item_categories')->get();
return view('search_post', compact('items','categories'));

Ответы [ 3 ]

0 голосов
/ 14 января 2020

Используйте Carbon для этого. Просто добавьте duration к created_at методом Carbon addDay($duration). Затем верните свои сообщения с результатом> = today().

0 голосов
/ 14 января 2020

Поэтому я изменил свою таблицу на эту

Changed Table to this

И с помощью этого сценария

$items=Post::with('items','users')->where('duration','>=',\Carbon\Carbon::now() )->paginate(12);
$categories = DB::table('item_categories')->get();
return view('search_post', compact('items','categories'));

Он работает отлично. Спасибо всем.

0 голосов
/ 14 января 2020

Вы должны сделать оговорку «Где» со своим пагинатом.

как указано здесь: { ссылка }

как:

$items=Post::with('items','users')
            ->where('created_at', '<=', Carbon::now()->addDays(3))
            ->paginate(12);
...