简单搜索laravel

时间:2017-03-23 09:33:46

标签: laravel laravel-5 laravel-5.4

我试图在我的小型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 ..我希望这是明确...也许你们可以帮我设置表格/路线,并清楚我应该怎么做......

2 个答案:

答案 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');仅将该类别作为字符串。