【发布时间】:2021-09-20 06:05:35
【问题描述】:
我想将所有三个函数合并为一个搜索函数。如果用户使用名称搜索,它应该只调用该名称字段行,并且应该禁用按作者搜索和价格功能等其余内容。我正在分别编写所有三个函数和三个不同的 API 路由。现在我想要一个 API 路由,如果用户按姓名、作者或价格搜索,并且所有三个函数都在一个函数中。
文件控制器.php
class FileController extends Controller
{
public function searchBooksByAuthor($author)
{
$books = Books::all();
if (User::find($books->user_id = auth()->id())->books) {
$searchBooks = Books::where("author", "like", "%".$author."%")->get();
}
}
public function searchbooks($name)
{
$books = Books::all();
if (User::find($books->user_id = auth()->id())->books) {
return Books::where("name", "like", "%".$name."%")->get();
}
}
public function searchBooksbyPrice($price)
{
$books = Books::all();
if (User::find($books->user_id = auth()->id())->books) {
return Books::where("price", $price)->get();
}
}
}
api.php
Route::group(["middleware" => ['auth.jwt']], function () {
Route::get('searchBooksbyName/{name}', [FileController::class, 'searchbooks']);
Route::get('searchBookbyAuthor/{author}',
[FileController::class, 'searchBooksByAuthor']);
Route::get('searchBookbyprice/{price}',
[FileController::class, 'searchBooksbyPrice']);
});
【问题讨论】:
-
这很简单..用查询字符串创建一个搜索路径。然后按他们搜索..你在这里有什么困惑??