有哪些选项可以阻止用户将现有路径名称用作帐户名称。
例如:
我有一条显示最新帖子domain.com/latest
的路线。我还想简化用户的个人资料页面网址,例如以下domain.com/a_user
。
当用户使用latest
用户名注册时,会出现此问题。这取决于路由顺序,但我想拒绝这些用户名。是否有任何简单的验证,或者我应该将所有基本路由存储在一个数组中并检查它?
答案 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)]
);