#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 );
}
}
}