【问题标题】:Kohana 3.0 Using parameters in default routeKohana 3.0 在默认路由中使用参数
【发布时间】:2018-04-17 11:30:52
【问题描述】:

我正在尝试使用我的索引控制器来创建这样的 url 结构:mydomain.com/vehiclemake/vehiclemodel/vehiclemodelyear

我不知道如何更改默认路由,或更改将按预期工作的副本。每次在将品牌添加到 url 后加载页面时,它都会给我一个空白屏幕,并且日志告诉我它找不到带有 url 中车辆品牌名称的控制器。以下是默认设置和我尝试过的。

Route::set('vehicle', '(/<make>(/<model>(/<model_year>)))')
    ->defaults(array(
        'controller' => 'index',
        'action'     => 'index',
    ));
Route::set('default', '(<controller>(/<action>(/<id>)))')
    ->defaults(array(
        'controller' => 'index',
        'action'     => 'index',
    ));

我尝试在 stackoverflow 上寻找答案,但我没有找到与我的类似的问题有答案。

【问题讨论】:

    标签: php routes kohana-3


    【解决方案1】:

    我不确定我是否正确理解了您的问题。 无论如何,你不需要第一个 / 之前的。

    除此之外,此结构将需要一个控制器用于每个品牌,并在该控制器中为每个模型提供一个操作。我认为下面的代码适用于 uri:/ferrari/testarossa/1992

    class Ferrari extends controller {
      public function action_testarossa() {
         // whatever you'd like to do
         echo $this->request->param('model_year');
      }
    }
    

    我认为路由中的默认值始终是,但我不确定。 1.控制器 2.行动 3.随便你定义 4. 随便你定义

    希望这会有所帮助!

    【讨论】:

    • 我不推荐这种方法。您需要为每个车辆创建一个单独的控制器是不够的,您还没有使用继承,您需要复制代码。会更好一点:controller Ford extends Vehicle.
    【解决方案2】:

    您必须规划您的路由,以使一个 URL 不能与 2 个路由匹配。我建议:

    Route::set('vehicle', '/<make>(/<model>(/<model_year>))')
        ->defaults(array(
            'controller' => 'vehicle',
            'action'     => 'index',
        ));
    
    Route::set('mainpage', '/')
        ->defaults(array(
            'controller' => 'index',
            'action'     => 'index',
        ));
    
    Route::set('default', '<controller>(/<action>(/<id>))', ['controller'=>'(index|user)'])
        ->defaults(array(
            'controller' => 'index',
            'action'     => 'index',
        ));
    

    请注意,我删除了一对括号。对于default,路由正确的控制器是:indexuser

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-03-12
      • 1970-01-01
      • 1970-01-01
      • 2017-01-13
      • 2021-04-17
      • 2016-08-21
      相关资源
      最近更新 更多