Почему мое третье условие не работает в поиске?

Почему мое третье условие не работает в поиске?

27.01.2020 09:55:57 Просмотров 34 Источник

Я пытаюсь получить результат поиска, и у меня есть следующий код:

public function search(Request $request){ 
    $from = $request->from;
    $to = $request->to;
    $word = $request->word;  
    if(empty($word) || $word == null){
        $searched = Post::whereBetween('created_at', [$from, $to])->paginate(10);
    } elseif(!empty($word) && !empty($from) && !empty($to)){ 
        $searched = Post::where('title', 'LIKE', '%' . $word . '%')
        ->orWhere('content', 'LIKE', '%' . $word . '%')
        ->orWhere('subtitle', 'LIKE', '%' . $word . '%')
        ->whereBetween('created_at', [$from, $to])
        ->paginate(10); 
    } elseif(empty($from) && empty($to) && !empty($word)){
        $searched = Post::where('title', 'LIKE', '%' . $word . '%')
        ->orWhere('content', 'LIKE', '%' . $word . '%')
        ->orWhere('subtitle', 'LIKE', '%' . $word . '%')
        ->paginate(10);
    }

    return view('page.search', compact('searched', 'from', 'to'));
}

Первое и второе условия работают, но не последнее. Что я здесь упускаю или делаю неправильно?

У вопроса есть решение - Посмотреть?

https://stackoverflow.com/questions/59926336/why-isnt-my-third-condition-working-in-search#comment105974998_59926336
Вам нужно проверить последнее условие, должно быть что-то противоположное ожидаемому, поэтому оно не работает.
https://stackoverflow.com/questions/59926336/why-isnt-my-third-condition-working-in-search#comment105975097_59926336
@HirenGohel для выполнения первого условия $word должен быть пустым, но это не так.
https://stackoverflow.com/questions/59926336/why-isnt-my-third-condition-working-in-search#comment105975222_59926336
Что именно вы подразумеваете под"не работает"? Что вы пытались сделать, чтобы решить эту проблему?
https://stackoverflow.com/questions/59926336/why-isnt-my-third-condition-working-in-search#comment105975306_59926336
@NicoHaase в моей форме есть тег name, но когда я только заполняю слово, я ничего не получаю во время отладки $request

Ответы - Почему мое третье условие не работает в поиске? / Why isn't my third condition working in search?

Является ответом!
Jignesh Joisar

27.01.2020 10:06:22

попробуй вот это

  • например, если слово найдено, то поиск с таким же первым условием истинный
  • если пользователь установил ОТ и до даты, то второе условие истинно
  • если пользователь заполняет оба (Слово и дату), то ваши оба условия истинны..

  • если ваш не заполняет никакого значения, то получите только первые 10 (десять) сообщений(ни одно из условий не соответствует)

    public function search(Request $request){
    
        $posts = Post::query();
        $from = $request->from;
        $to = $request->to;
        $word = trim($request->word);
    
        if($word && !empty($word)){
               $posts->where('title', 'LIKE', '%' . $word . '%')
                ->orWhere('content', 'LIKE', '%' . $word . '%')
                ->orWhere('subtitle', 'LIKE', '%' . $word . '%');
        }
    
        if(!empty($from) && !empty($to)){
            $posts->whereBetween('created_at', [$from, $to]);
        }
    
        $searched = $posts->paginate(10);
    
        return view('page.search', compact('searched', 'from', 'to'));
    }
    
https://stackoverflow.com/questions/59926336/why-isnt-my-third-condition-working-in-search/59926457#comment105975234_59926457
Пожалуйста, добавьте некоторые пояснения к вашему ответу, чтобы другие могли извлечь из него урок - что вы подразумеваете под "автоматически подобранным"?
https://stackoverflow.com/questions/59926336/why-isnt-my-third-condition-working-in-search/59926457#comment105975367_59926457
Что делать, если пользователь вводит значение во все поля, которые вы показали только кейсам.
https://stackoverflow.com/questions/59926336/why-isnt-my-third-condition-working-in-search/59926457#comment105975423_59926457
@NicoHaase я забыл добавить экспляцию теперь добавить so pl проверить
https://stackoverflow.com/questions/59926336/why-isnt-my-third-condition-working-in-search/59926457#comment105976712_59926457
@JigneshJoisar Спасибо за помощь. Но я хочу отобразить сообщение, если форма отправлена пустой. Как это можно сделать?
Помочь в развитии проекта:
Закрыть X