2012-11-16 103 views
0

我在一個類似的船上有很多其他人...從Codeigniter到Laravel。Laravel路由與分頁和寧靜的控制器

我正在執行數據庫搜索,並正確提取結果,甚至使分頁工作正常。 (一次只顯示30個,其餘結果顯示爲底部的鏈接)

您從零件搜索視圖開始,該視圖由控制器中的get函數調用。我在控制器中有一個提取結果的post函數。 (URL將是部分搜索仍然是,但拉動後功能)

問題是,當你選擇第6頁(URI是parts-search?page = 6)時,它會被路由回拉函數在第一部分搜索頁面中。

我想說的是我必須做這樣的事情:

Route::any('parts-search?page=(:any)')

,但我不知道如何保持相同的搜索變量,或者如果查詢到每次被運行。

這些都是我的文件:

routes.php文件

Route::controller('home'); 

Route::get('/', function() 
{ 
    return View::make('home'); 
}); 

Route::get('parts-search', '[email protected]_search'); 

Route::post('parts-search', '[email protected]_search'); 

home.php(控制器)

public $restful = true; 

public function get_index() 
{ 
    return View::make('home'); 
} 

public function get_parts_search() 
{ 
    return View::make('part-search'); 
} 

public function post_parts_search() 
{ 
    if (Input::get('part_search')) 
    { 
     $term = Input::get('part_search'); 
     $parts = Part::where('part', 'LIKE', $term.'%') 
      ->order_by('part', 'asc') 
      ->paginate(30); 

     return View::make('results') 
     ->with('parts', $parts) 
     ->with('term', $term); 
    } 
    else 
    { 
     return View::make('part-search') 
      ->with('error', '<h1>Please enter a search term</h1>'); 
    } 

} 

兩個直接回答,對我學習的地方將不勝感激...和任何課程更正,因爲這是Laravel的第3天對我來說。謝謝!

所以我已經證實它絕對是一個路由問題,但並沒有從哪裏開始的暗淡線索。而我一直在問谷歌的神靈無濟於事。

回答

0

這是一般爲什麼你要做搜索查詢作爲GET請求,以便搜索關鍵字出現在URI中。大多數應用程序都是這樣做的,即使是堆棧溢出。

當您想要更改頁面時維護查詢字符串can append to the pagination links

+0

好,現在我的問題是分頁與?創建鏈接,但我不能解析它們,除非它們是/。如果我嘗試設置Route :: get('results?(:any?)',function($ term = NULL),我仍然會得到一個404 – Jonathan