В настоящее время я создал фильтры, которые выбирают сообщения за сегодня, на этой неделе или в этом месяце. Это легко и все, однако, когда я попытался добавить функциональность, которая позволяет мне добавить второй фильтр, все пошло не так.
Прежде всего, я не могу понять, как добавить второй компонент запроса к URL-адресу без использования переключателей. В настоящее время у меня есть это:
<ul class='home-filters'>
<li><a class='placeholderA' href='?time=today'>Today</a></li>
<li><a class='placeholderA' href='?time=week'>This Week</a></li>
<li><a class='placeholderA' href='?time=month'>This Month</a></li>
<li><a class='placeholderA' href='/'>Reset</a></li>
</ul>
Когда я нажимаю на любую из этих ссылок, к URL-адресу добавляется? Time = и требуемый период времени, например http://example.com/?time=month
. После этого контроллер моей страницы определяет, какие изображения показывать, используя этот код:
public function index(Request $request){
if ($request->get('time') && $request->get('time') == 'today') {
$images = Image::orderBy('created_at', 'DESC')
->whereDate('created_at', Carbon::today())
->get();
} else if ($request->get('time') && $request->get('time') == 'week') {
$images = Image::orderBy('created_at', 'DESC')
->whereDate('created_at', '>', Carbon::now()->subWeek())
->get();
} else if ($request->get('time') && $request->get('time') == 'month') {
$images = Image::orderBy('created_at', 'DESC')
->whereDate('created_at', '>', Carbon::now()->subMonth())
->get();
} else {
$images = Image::orderBy('created_at', $request->get('order') ?? 'desc')
->get();
}
return view('home', ['images' => $images]);
}
Это прекрасно работает, но я хочу сделать так, чтобы я мог применить 2 фильтра, как это http://example.com/?time=month&order=ascending
.
Я пытаюсь сделать это аналогично тому, как это делается на этом сайте - https://www.artstation.com/
. Если я выберу «Digital 2D» из выпадающего меню «All Media» и также нажму «Trending», URL стороны становится https://www.artstation.com/artwork?sorting=trending&medium=digital2d
. Оба места, на которые я нажимаю, кажутся <a>
элементами, такими же, как мои.
Моя цель - иметь возможность добавлять компоненты запросов одним щелчком мыши на элементе <a>
. Я позабочусь о работе с серверной логикой, когда выясню это.