[搜索使用Laravel APi时返回数据库中的所有数据

问题描述 投票:0回答:1

我正在使用Laravel开发API,我希望能够使用该API进行搜索,但是我无法这是我的方法

   public function searchapi()
   {

 $search = request()->get('search');

   /* $books = Book::when($search, function ($query, $search) {
       return $query->where('name', 'LIKE', "%{$search}%");
   })
    ->orderBy('created_at', 'desc')
    ->simplepaginate(12); */

  $books = Book::where('name', 'LIKE', "%{$search}%")->Paginate(16);
  $author = Author::where('name', 'LIKE', "%{$search}%")->Paginate(16);
  $genre = Category::where('title', 'LIKE', "%{$search}%")->Paginate(16);



   return Response::json(array(
    'books' => $books, 
    'author'=>$author,
    'genre'=>$genre,
 ));


}

我不知道我在做什么错,因为当使用邮递员进行搜索时,这将返回数据库中的所有数据。

我在api.php中的路线

Route::get('/search', 'BooksController@searchapi');

UPDATE

我正在使用邮递员进行测试。我通过了Key=searchvalue=searchterm
php laravel api laravel-api
1个回答
0
投票

方法:

public function searchapi(Request $request)
   {

 $search = request()->get('search');

   /* $books = Book::when($search, function ($query, $search) {
       return $query->where('name', 'LIKE', "%{$search}%");
   })
    ->orderBy('created_at', 'desc')
    ->simplepaginate(12); */

  $books = Book::where('name', 'LIKE', "%{$search}%")->Paginate(16);
  $author = Author::where('name', 'LIKE', "%{$search}%")->Paginate(16);
  $genre = Category::where('title', 'LIKE', "%{$search}%")->Paginate(16);



   return Response::json(array(
    'books' => $books, 
    'author'=>$author,
    'genre'=>$genre,
 ));


}

路线:

Route::post('/search', 'BooksController@searchapi');
© www.soinside.com 2019 - 2024. All rights reserved.