我正在使用Laravel(第一次用户)创建一个网站,我已经设法有URL,如
localhost/branch/pass
所以在传递结束时不使用。php。但是我想要实现的是,当用户访问"pass"页面时,他们应该带一个令牌,这是通过电子邮件发送的,所以他们应该这样访问它…
localhost/branch/pass?token=blah
我想让URL看起来像…
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
将作为参数传递给您在控制器中声明的函数。
在Laravel中不需要修改你的。htaccess文件,因为它会在内部处理。
创建你的路由
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
更改为用于存储实际令牌的任何变量。
在您的例子中,它将是设置为blah
的任何变量。
此函数将根据路由和参数输出您正在查找的URL。