Laravel路线&路由中的用户名

时间:2015-05-04 13:49:52

标签: php laravel

有哪些选项可以阻止用户将现有路径名称用作帐户名称。

例如: 我有一条显示最新帖子domain.com/latest的路线。我还想简化用户的个人资料页面网址,例如以下domain.com/a_user

当用户使用latest用户名注册时,会出现此问题。这取决于路由顺序,但我想拒绝这些用户名。是否有任何简单的验证,或者我应该将所有基本路由存储在一个数组中并检查它?

1 个答案:

答案 0 :(得分:3)

您可以将not_in与您使用Route::getRoutes()获得的路径路径数组结合使用。 所以在你的情况下你可以有这样的东西:

$routes = [];

// You need to iterate over the RouteCollection you receive here
// to be able to get the paths and add them to the routes list
foreach (Route::getRoutes() as $route)
{
    $routes[] = $route->getPath();
}

$validator = Validator::make(
    ['username' => $username],
    ['username' => 'not_in:' . implode(',', $routes)]
);