我正在使用Laravel(首次使用者)创建网站,并且我设法拥有了诸如
之类的网址localhost/branch/pass
所以在通过结束时不使用.php。但是,当用户访问“通行证”时,我想要实现的目标就是这样。页面上他们应该带一个通过电子邮件发送的令牌,这样他们应该像这样访问...
localhost/branch/pass?token=blah
我希望网址看起来像是......
localhost/branch/pass/blah
我之前在.htaccess中实现了这一点,而没有使用laravel我只是想知道laravel是否有自己的方式这样做,还是会像我之前做过的那样?
提前致谢!
答案 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。