我试图在我的小型laravel项目中建立一个搜索系统,但考虑到我还是一名初学者,我无法确定这应该如何运作..
基本上,我有一个控制器,它返回一个包含所有用户的索引页面。在索引页面中,我有多个选择标签,您可以在其中选择一个选项并过滤用户。
这是我的索引方法:
public function index(){
$users = User::all();
$service = Service::all();
return view('browse.index', compact('users','service'));
}
现在,问题是,我在用户和服务之间建立了关系。所以,每个用户都有很多服务。考虑到这一点,当我构建搜索功能时,我希望能够访问用户服务。 像这样:
$category = $request->input('category');
foreach ($users as $user) {
$serviceFound = $user->service->where('category', 'LIKE', '%' . $category . '%');
}
当然这不起作用,因为考虑到我有索引的获取途径,我不知道如何设置表单以便我可以使用$ request ..我希望这是明确...也许你们可以帮我设置表格/路线,并清楚我应该怎么做......
答案 0 :(得分:1)
使用SaveChanges()
构建一个简单的表单。简单示例
GET
在控制器中执行
<form action="" method="GET">
<input type="text" name="category" required/>
<button type="submit">Submit</button>
</form>
只有正确设置了您的人际关系,才能正常加载 保持您的路线不变现在的方式。
答案 1 :(得分:-1)
在您的控制器中:
public function index(\Request $request)
{
return $request::all();
}
在您的路线中:
Route::get('searchtest', 'SearchController@index');
示例网址:
http://localhost:8000/searchtest?search=search_string&category=socks
最后,输出
{
"search": "search_string",
"category": "socks"
}
您也可以$category = $request::get('category');
仅将该类别作为字符串。