【问题标题】:conditional nested routes in laravellaravel 中的条件嵌套路由
【发布时间】:2015-11-17 21:51:10
【问题描述】:

我想检查路由上特定 URL 的段,并根据段的值决定将其处理到另一个路由。如下所示:

Route::get('{module}/{seg}', function(){
        if (is_numeric((Request::segment(3)) {
            return Route::get('{module}/{seg}',Request::segment(2) . 'Controller@index');
        }else{
            return Route::get('{module}/{seg}',Request::segment(2).'Controller@index' . Request::segment(3));
        }

    });

我不认为上面的代码有效,但任何人都可以建议一个在 laravel 中实现上述逻辑的有效代码吗?

【问题讨论】:

  • 您认为上述方法行不通是什么意思?你没试过吗?
  • @BenSwinburne,我做到了,但它抛出了错误。错误可能出在上面的代码或其他原因上。所以,首先,在进一步挖掘之前,我想确保执行逻辑的正确方法,如所述在 laravel 上面。

标签: laravel laravel-5 laravel-routing


【解决方案1】:

我建议将其添加为可选参数,并处理控制器中的差异。给定您的代码,它可能看起来像这样,例如:

// route
Route::get('{module}/{seg}/{param?}', 'Controller@index');

// controller
public function index($module, $seg, $param = null)
{
    // for dynamic index methods
    if (is_numeric($param)) {
        $method = 'index' . $param;
        return $this->{$method}();
    }
    // for non-numeric third-segment params, continue here as usual
}

【讨论】:

    猜你喜欢
    • 2020-09-04
    • 1970-01-01
    • 2015-08-01
    • 2014-11-16
    • 1970-01-01
    • 1970-01-01
    • 2016-08-27
    • 2016-06-20
    • 2012-11-06
    相关资源
    最近更新 更多