我构建了一个laravel 5应用程序,现在我正在测试它如何处理不同的输入.因此我遇到了一个奇怪的问题.在标题中我有一个搜索字段.它返回结果,分页为10.
问题
如果用户输入一个字母,例如英文的"e",一切正常.但是,当用户输入一个字母时,例如保加利亚语中的"e" - 结果的第一页显示正确,当用户点击第2页时,保加利亚语中"е"搜索中的查询更改为"%D0" %B5"并且不再显示结果.这是该网站的实际链接.http://podobri.eu
我想这与编码有关,但我看不出我做错了什么.
这是实际的代码
路线
Route::get('/search', [
'uses' => '\Podobri\Http\Controllers\SearchController@getResults',
'as'=>'search.results',
]);
Run Code Online (Sandbox Code Playgroud)
SearchController
public function getResults(Request $request){
$query = $request->input('query');
$comments = Comment::where(function($query){
return $query;
})->orderBy('created_at', 'desc')->get();
if(!$query || $query==''){
return view('problems.index')->with('comments', $comments);
}
$problems = Problem::where(DB::raw("CONCAT(problem_title, ' ', problem_description)"), 'LIKE', "%$query%")
->orWhere('location', 'LIKE', "%$query%")
->orWhere('category', 'LIKE', "%$query%")
->orderBy('created_at', 'desc')->paginate(10);
Carbon::setLocale('bg');
return view('search.results')
->with('comments', $comments)
->with('problems', $problems)
->with('title', '????????? ?? "'."$query".'" | ???????')
->with('description', '????????? ?? "'."$query".'" ? ????????? ?? ???????');
}
Run Code Online (Sandbox Code Playgroud)
视图
@foreach($problems …Run Code Online (Sandbox Code Playgroud)