漂亮的URL使用laravel 4.2

时间:2014-06-19 17:30:56

标签: php .htaccess laravel

我正在使用Laravel(首次使用者)创建网站,并且我设法拥有了诸如

之类的网址
localhost/branch/pass

所以在通过结束时不使用.php。但是,当用户访问“通行证”时,我想要实现的目标就是这样。页面上他们应该带一个通过电子邮件发送的令牌,这样他们应该像这样访问...

localhost/branch/pass?token=blah

我希望网址看起来像是......

localhost/branch/pass/blah

我之前在.htaccess中实现了这一点,而没有使用laravel我只是想知道laravel是否有自己的方式这样做,还是会像我之前做过的那样?

提前致谢!

2 个答案:

答案 0 :(得分:1)

Routes文件中,我们可以使用路径中的{}过滤动态属性。由于这是GET请求,我们可以使用Route::get

Route::get('branch/pass/{token}', 'MyController@MyFunction');

然后,您可以在电子邮件中正确制作您的网址:

http://localhost/branch/pass/blah

和作为您的令牌的blah将作为参数传递给您在控制器中声明的函数。

答案 1 :(得分:1)

不应该修改你的.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::route('passwordRoute', array('token' => $token));

在这里,我们通过它已经定义的名称来调用路径。这将抓取路线,看到路线需要token的参数,然后将token参数替换为$token变量中存储的任何参数。当然,您的变量可能有所不同,您可能需要将$token更改为用于存储实际令牌的变量。

在您的情况下,它将是设置为blah的任何变量。

此功能将根据路线和参数输出您要查找的URL。