簡體   English   中英

使用Laravel 4.2的漂亮URL

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM