php - 具有无限数量参数的 Laravel 4 路由

标签 php laravel laravel-4 laravel-routing

我正在尝试为无限数量的 URL 级别创建动态路由。

这是我现在的路线

Route::get('{pageLink}', array('uses' => 'SiteController@getPage'));

这适用于第一层。所以像 something.com/foo/这样的 URL 是可行的。但是如果我有类似 something.com/foo/bar/的东西,它就不会捕获该 URL。我需要它来匹配无限级别。这样,在我的 Controller 中,无论整个链接是什么,它都会给我一个变量。

我知道我能做到

Route::get('{pageLink}', array('uses' => 'SiteController@getPage'));
Route::get('{pageLink}/{pageLink2}', array('uses' => 'SiteController@getPage'));
Route::get('{pageLink}/{pageLink2}/{pageLink3}', array('uses' => 'SiteController@getPage'));

但这似乎有点矫枉过正。有没有更好的方法来匹配 URL 的末尾?

谢谢。

最佳答案

你可以试试这样的:

//routes.php
Route::get('{pageLink}/{otherLinks?}', 'SiteController@getPage')->where('otherLinks', '(.*)');

请记住将上面的内容放在 routes.php 文件的最后(底部),因为它就像一条“包罗万象”的路线,因此您必须首先定义所有“更具体”的路线。

//controller 
class SiteController extends BaseController {

    public function getPage($pageLink, $otherLinks = null)
    {
        if($otherLinks) 
        {
            $otherLinks = explode('/', $otherLinks);
            //do stuff 
        }
    }

}

这种方法应该允许您使用无限量的参数,所以这似乎是您所需要的。

关于php - 具有无限数量参数的 Laravel 4 路由,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21522677/

相关文章:

php - "Last minute subscription"项目 PHP/MySQL 原子性问题

PHP Captcha - session 总是空的

php - Laravel 识别集合实例键

php - 按不工作的公司排序。请帮助我

javascript - 如何在ajax url中使用laravel路由

Laravel 4 : if statement in blade layout works strange

php - Laravel 在类构造函数中检索参数

php - Laravel Eloquent : Accessing properties and Dynamic Table Names

php - 为一个参数发布多个值?

php - 重定向循环错误 laravel auth