Laravel отправляет API JSON в поисковом ответе - PullRequest
0 голосов
/ 18 сентября 2018

У меня есть поле поиска для фильтрации новостей, но я понятия не имею, правильный ли это способ сделать.

<form method="GET" action="search" class="form-inline my-2 my-lg-0">
  <input style="width:430px;" class="form-control py-2" type="search" name="search" value="Buscar Noticia" id="buscar" onclick='javascript: this.value = ""'>
  <span class="input-group-append">
  <button class="btn btn-outline-secondary" type="submit">
    <i class="fa fa-search"></i>
  </button>
  </span>

Это мой NoticiaResource:

public function toArray($request)
{
    $filtro = $request->get('search');

    if(!empty($filtro))
    {
        $noticias = Noticia::where('titulo', 'LIKE', '%' .$filtro . '%')->paginate(4);   
    } 
    else
    {
        $noticias = Noticia::all();    
    }

    return $noticias->toArray();
} 

NoticiasController:

public function show(Noticia $noticias)
{
    NoticiaResource::withoutWrapping();
    return new NoticiaResource($noticias);
}

Добавить маршрут API в api.php:

Route::get('noticias', 'NoticiasController@show');

И маршрут для возврата того же URL в web.php:

Route::get('search', function(Request $request){
    return redirect('noticias.html');
})->name('search');

Проблема в том, что JSON всегда возвращает все новости, ничего не фильтрует.

1 Ответ

0 голосов
/ 18 сентября 2018

Попробуйте public function toArray(Request $request) Документы

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