[英]Pretty URL using laravel 4.2
我正在使用Laravel(首次使用用戶)創建一個網站,並且設法獲得了網址,例如
localhost/branch/pass
因此無需在傳遞結束時使用.php。 但是我要達到的目的是,當用戶訪問“通過”頁面時,他們應該隨身攜帶通過電子郵件發送的令牌,這樣他們應該像這樣訪問它...
localhost/branch/pass?token=blah
我希望網址看起來像是...
localhost/branch/pass/blah
我以前在.htaccess中已經實現了這一點,而沒有使用laravel,我只是想知道laravel是否有自己的方式來做到這一點,或者是否與我以前做的一樣?
提前致謝!
在您的Routes
文件中,我們可以使用路徑中的{}
來過濾動態屬性。 由於這是一個GET
請求,因此我們可以只使用Route::get
。
Route::get('branch/pass/{token}', 'MyController@MyFunction');
然后,您可以正確地在電子郵件中添加URL,例如:
http://localhost/branch/pass/blah
blah
即令牌)將作為參數傳遞給您在控制器內聲明的函數。
不需要修改您的.htaccess文件即可使用Laravel進行此操作,因為所有這些都將在內部處理。
創建您的路線。
Route::get('branch/pass/{token}', array('uses' => 'YourController@yourFunction', 'as' => 'passwordRoute'));
這里要注意的一件事是我將路由命名為passwordRoute
。 您可以將名稱更改為所需的名稱。 我發現這非常有用,因為將來如果您需要更改路線,只要名稱保持不變,您就始終可以通過其名稱找到它。
創建您可能已經擁有的功能。
class YourController extends BaseClass {
public function yourFunction($token)
{
// Do stuff with your token.
}
}
現在,您可以使用URL::route()
並傳入路由名稱,非常容易地為此路由創建url。
URL::route('passwordRoute', array('token' => $token));
在這里,我們使用已經定義的名稱來調用路由。 這會搶的路線,看到路線需要的參數token
,然后替換token
與任何存儲在您的參數$token
變量。 當然,您的變量可能有所不同,您可能需要將$token
更改$token
用於存儲實際令牌的任何變量。
在您的情況下,它將是設置為blah
任何變量。
然后,此功能將根據路線和參數輸出您要查找的URL。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.