在Laravel中使用重定向进行路由

时间:2016-03-16 11:44:31

标签: php laravel laravel-5 laravel-routing

我正在尝试处理Laravel中的路由。我该怎么办?

如果用户在此拨打号码(3到11):

  • / {号码}
  • /地区/ {号码}
  • 或/ phone / {numbers}

这些数字可能包括它们之间的划线,以及' 1'在开头(这个拨号代码)。

必须删除短划线 那么如果是11个号码,需要删除' 1'在开始。

我们根据拨打的位数重定向

  • 重定向/区域中的3到6位数字,其中$ s1 =前3位 数字
  • 6到10被重定向到/ phone /,$ s1 =前3位数,$ s2 =以下3位数
  • 10重定向/ phone /,$ s1 =前3位数,$ s2 = 3 以下数字,$ s3 =以下4个数字

我的路线(虽然不包括破折号):

Route :: get ( 'area/{phone}', 'Controller@phone') -> where ([ 'phone' => '[0-9]{3,11}']);
Route :: get ( 'phone/{phone}', 'Controller@phone') -> where ([ 'phone' => '[0-9]{3,11}']);

控制器执行短划线移除,裁剪不需要的数字,裁剪' 1'如果是11位数,然后重定向到/ phone /,/ area /.

但重定向后,routes.php再次启动,循环变为无限。

我该怎么办?也许有另一种方式?

1 个答案:

答案 0 :(得分:1)

您想要使用standard routes with parameters然后validate输入。如果输入不正确,您将重定向到404错误页面。