Могу ли я применить второй компонент запроса для фильтрации без использования переключателей? - PullRequest
0 голосов
/ 29 августа 2018

В настоящее время я создал фильтры, которые выбирают сообщения за сегодня, на этой неделе или в этом месяце. Это легко и все, однако, когда я попытался добавить функциональность, которая позволяет мне добавить второй фильтр, все пошло не так.

Прежде всего, я не могу понять, как добавить второй компонент запроса к 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>. Я позабочусь о работе с серверной логикой, когда выясню это.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...