2014-03-05 25 views
0

我擁有一個控制我的表「粉絲」之一的資源。我有一個看法,顯示每個分別的信息。這些網址現在是「url.com/fans/{$id}」,其中{$ id}是表格中行/對象的唯一ID。

我想保持這種關係,但我也想將url指向表中的另一列(另一個唯一標識符)。所以像「ulr.com/fans/{$new_column}」。

我該如何重新路由此視圖/網址,使其看起來像這樣?這是我到目前爲止有:

路線:

Route::resource('fans', 'FansController'); 

FansController:

public function show($id) { 

$fan = Fan::find($id); 
return View::make('fans.show', compact('fan')); 

}  

所以,最後,我想 「url.com/fans/{$id}」 仍工作,但它會重新路由到「url.com/fans/{$new_column}」。並直接將「url.com/fans/{$new_column}應該只是呆在那裏。

回答

0

如果能夠ID和* NEW_COLUMN之間的每一個參數值來區分*您可以聲明所有的路線球迷路線與路線::獲得而不是路線::資源和定義正則表達式路由約束,所以例如,如果您ID列只有數字和你的* NEW_COLUMN *列有alpha值:

Route::get('fans/{new_column}', array('as' => 'anotherColumn', function($new_column) 
{ 
    $fan = Fan::where('new_column','=',$new_column); 
    return View::make('fans.show', compact('fan')); 
})) 
->where('new_column', '[A-Za-z]+'); 

Route::get('fans/{id}', function($id) 
{ 
    // do something with $id or 
    return Redirect::route('anotherColumn'); 
}) 
->where('id', '[0-9]+'); 

然後聲明自動生成的資源路由的其餘部分。

+0

我是否必須爲資源的其餘部分聲明每條單獨的路線?索引,創建,編輯等...... – user1072337

+0

是的,它們都具有由資源類型管理的相同路由。 – marcanuy

+0

你能解釋一下「where('new_column','[A-Za-z] +');」部分呢?什麼是「new_column」中有字母和數字(和下劃線) – user1072337

相關問題