как получить результат поиска для элемента, не являющегося пробелом

#php #input

#php #ввод

Вопрос:

у меня проблема с кодом поиска в моем Интернете. допустим, у меня есть только одна статья с именем cool car , если я наберу на ней текст в строке поиска, это будет так

 cool -> it get result
car -> it get result
cool car -> it get result
(empty text) -> it get result with (isset($message)) 'found nothing'
xyz -> it get result with (isset($message)) 'found nothing'
coolcar -> page just go full blank without (isset($message)) or result even toolbar not show up  <this is the problem
 

это мой код контроллера

 public function search(Request $request)
{
    $tags = tag::all();
    $artikelupdate = artikel::latest()->limit(3)->get();
    $categori = categori::all();
    $artikelterkait = artikel::orderByViews()->limit(3)->get();
    $message = "Sorry, but nothing matched your search terms. Please try again with some different keywords.";
    $q = Request::input('q');
    if($q != ""){
    $artikelall = artikel::orWhere('judul','LIKE', '%' . $q . '%')->paginate(5);
    $artikelall->appends(['q' => $q]);
    
    if(count($artikelall) > 0)
    return view('search')->withArtikelall($artikelall)->withArtikelterkait($artikelterkait)->withArtikelupdate($artikelupdate)->withTags($tags)->withCategori($categori)->withQuery ( $q );  
    }else{
    return view('search')->withCategori($categori)->withArtikelterkait($artikelterkait)->withMessage($message)->withArtikelupdate($artikelupdate)->withTags($tags)->withQuery ( $q );
    }
    
}    
 

это мое мнение blade.php

                 <form method="POST" action="{{ url('/search') }}" role="search">
        {{ csrf_field() }}
        <div class="input-group f-search">
        <input type="text" name="q" class="form-control" placeholder="Search Title Here">
        <div class="input-group-append">
        <button class="btn btn-secondary" type="submit">
         <i class="fa fa-search"></i>
        </button>
         </div>
          </div>
          </form>
 

я просто хочу, когда я набираю элемент без пробела, как будто coolcar он покажет imassage.ty для продвижения.

Комментарии:

1. Вы проверили журнал ошибок веб-серверов на наличие подсказок?

2. я уже dd, но он ничего не показывает

Ответ №1:

я обнаружил, что это исправить, выглядит глупо, но, по крайней мере, это работает для меня, если у кого-то есть лучшее решение, а не добавлять нелепое множественное выражение if else, не стесняйтесь отвечать или просто закрывать этот вопрос.

 public function search(Request $request)
{
    $tags = tag::all();
    $artikelupdate = artikel::latest()->limit(3)->get();
    $categori = categori::all();
    $artikelterkait = artikel::orderByViews()->limit(3)->get();
    $message = "Sorry, but nothing matched your search terms. Please try again with some different keywords.";
    $q = Request::input('q');
    $arrDelChars = [' ',''','-','.','?','!'];
    if ( ctype_alpha( str_replace( $arrDelChars, '', $q ) ) === true || is_numeric($q)) {
        $artikelall = artikel::Where('judul','LIKE', "%{$q}%")->paginate(5);
        $artikelall->appends(['q' => $q]);
        if(count($artikelall) > 0){
        return view('search')->withArtikelall($artikelall)->withArtikelterkait($artikelterkait)->withArtikelupdate($artikelupdate)->withTags($tags)->withCategori($categori)->withQuery ( $q );
        }else{
            return view('search')->withCategori($categori)->withArtikelterkait($artikelterkait)->withMessage($message)->withArtikelupdate($artikelupdate)->withTags($tags)->withQuery ( $q );
        }
    } else {
        return view('search')->withCategori($categori)->withArtikelterkait($artikelterkait)->withMessage($message)->withArtikelupdate($artikelupdate)->withTags($tags)->withQuery ( $q );
    }
    
}    
 

}