我是CI的新手,需要专家的一些新手帮助。

这是我当前的设置:
/ Controller /

  • home.php
  • report.php

  • / views /
  • 主页/index.php
  • 主页/recent.php
  • report / index.php
  • report / generate.php

  • 我尝试作为结果生成的URI:

    http://localhost
    http://localhost/report(将加载index.php)
    http://localhost/report/generate(将在报表 Controller 中调用生成方法)

    http://localhost/recent/10(将通过变量“10”调用家庭 Controller 中的生成方法)
    $route['default_controller'] = "home";
    $route['404_override'] = '';
    $route['/'] = 'home/index';
    $route['recent/(:num)'] = 'home/recent/$1';
    $route['report/(:any)'] = 'report/$1';
    

    如何避免始终为类中创建的每个新方法修改路由文件?这样就可以了:
    $ route [$ controller / $ method / $ variable](非常用于设置.net mvc路由)。

    任何帮助表示赞赏。

    最佳答案

    您不需要进一步修改。实际上,即使这一行也是多余的:

    $route['report/(:any)'] = 'report/$1';
    

    这也是多余的:
    $route['/'] = 'home/index';
    

    由于默认 Controller 设置为'home'且默认方法为始终为 index

    查看CI如何与URL一起工作:https://www.codeigniter.com/user_guide/general/urls.html

    因此,/localhost/report/generate将寻找Report Controller ,并加载其generate方法。这就是开箱即用的方式,无需路由。

    这条路线很好:
    $route['recent/(:num)'] = 'home/recent/$1';
    

    如果使用URL /localhost/recent/123并加载Home,controller,recent方法,并将123作为第一个方法参数。

    关于php - Codeigniter如何为 Controller 类和方法设置路由?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/28288239/

    10-10 18:16
    查看更多