如何将我的搜索关键字传递给我的控制器?

How can I pass my search keyword to my Controller?

我正在学习 laravel 5.4 并且我正在做一个示例项目。因为我需要从我的数据库中进行搜索。下面我附上了我的界面截图。

如您在我提供的搜索框中所见,我需要搜索 "malabe"。我需要为此取得成果。我已经实现了 Controller 并且也需要视图。下面我附上了我的控制器

class SearchController extends Controller
{
    //search controller
    public function search($keydown){
        $searchDetails = DB::table('van_Services')
            ->where('vs_RouteTo','like','%'.$keydown.'%')
            ->orwhere('vs_RouteFrom','like','%'.$keydown.'%')
            ->orwhere('vs_Description','like','%'.$keydown.'%')
            ->orderBy('created_at', 'DESC')
            ->paginate(12);

        return view('search.search', compact('searchDetails'));
    }
}

路线代码

Route::get('/search/{key}','SearchController@search');

这里是我的搜索框代码div,

<div class="col-xs-6 col-sm-2 col-md-2">
    <div class="search_box pull-right">
           {{--Search Button--}}
           <input type="text" name="search" id="search" laceholder="Search"/>
    </div>
</div> 

如果我执行 url 手册,我的路线和代码就可以工作,

我的问题是如何让我的搜索框工作?有任何教程或提示吗?

1.如果真的需要用URL link.

JS的解决方法是:

// q => Your search word
function redirectSearch(q) {
  location.href = '/search/'+q;
}

将搜索字段值传递给此函数并自动重定向页面。

.

2。您可以将 GET 参数发送到控制器。

前台代码:

<div class="col-xs-6 col-sm-2 col-md-2">
  <div class="search_box pull-right">
    <form action="/search" method="GET">
      {{--Search Button--}}
      <input type="text" name="search" id="search" placeholder="Search"/>
    </form>
</div>

控制器代码:

public function search(Request $request){
  $search = $request->search;
  ... Your code ...
}

如果你使用带有请求的方法,请不要忘记

use Illuminate\Http\Request;

路线:

Route::get('/search','SearchController@search');

My route and code works if i do the url manual,

我想它已经在工作了,重定向只是你的问题。 只需简单地使用 JS/jQuery.

// when ENTER is pressed
$(document).keypress(function (e) {
   if (e.which == 13) {
       e.preventDefault();

       window.location = APP_URL + "/search/" + $('#search').val();
   }
 });

祝你好运。