如果查詢是沒有問題的,這是怎麼了 我做的。
首先,在您的視圖搜索表單:
{{ Form::open(['method' => 'get']) }}
{{ Form::text('q',Input::get('q')) }}
{{ Form::submit('Search') }}
{{ Form::close() }}
確保您要搜索的表是MyISAM的,你可以通過添加這遷移做到這一點:
$table->engine = 'MYISAM';
之後,將此示波器添加到您的模型中並更改要搜索的列:
public function scopeSearch($query,$q) {
return empty($q) ? $query : $query->whereRaw(
"MATCH(title,contents,anotherfield)
AGAINST(? IN BOOLEAN MODE)",[$q]);
}
I在您的控制器中,只需在獲取數據時添加示波器:
$posts = Posts::search(Input::get('q'))->get();
它應該可以工作。如果您需要添加分頁,做這樣的事情:
$posts = Posts::search(Input::get('q'))->paginate(30);
而對於顯示在視圖中的鏈接,使用此代碼:
{{ $posts->appends(Input::except('page'))->links() }}
這樣會保留所有的GET PARAMS(包括查詢參數),而分頁。
長(但更好)的道路將使用Lucene(來自Zend的PHP實現:http://framework.zend.com/manual/1.12/en/zend.search.lucene.html)等搜索引擎。 –