【问题标题】:Kohana 3.1 Controllers in Sub Folders within the Controller FolderKohana 3.1 Controller 文件夹中子文件夹中的控制器
【发布时间】:2011-07-28 21:01:05
【问题描述】:

我需要为我的控制器创建子文件夹,以便于管理和故障排除。我需要有控制器/、控制器/管理员、控制器/用户/类型的设置。我曾尝试从 http://mydomain/admin/createuser 在 controller/admin/createuser 中创建控制器,但这似乎不起作用。

谁有这方面的建议?

我需要自定义路由吗?

【问题讨论】:

    标签: kohana-3


    【解决方案1】:

    您需要设置一个路由来捕获 /admin/ 并寻找一个名为 admin 的“目录”而不是一个名为 admin 的“控制器文件”。 那么你的 'createuser' 参数最好是在一个 'user' 控制器中,所以 'createuser' 将是你的用户控制器中的一个动作


    注意“目录”声明 - application/bootstrap.php

    Route::set('admin', 'admin(/<controller>(/<action>(/<id>)))')
      ->defaults(array(
        'directory' => 'admin',
        'controller' => 'user',
        'action' => 'index',
    ));
    

    然后在您的控制器中,您需要为类名中的每个目录“/”使用下划线 - application/classes/controller/admin/user.php

    class Controller_Admin_User extends Controller {
    
      public function action_createuser()
      {
        ..your code
      }
    

    【讨论】:

    • 非常感谢。我怎样才能拥有某种 SEF 网址?
    • 你可以在路由中使用任何你想要的 url。只需取出 或其他任何东西,然后告诉它你希望指定路径使用哪个控制器:Route::set(' loggingIn', 'admin/login')->defaults('controller'=>'user', 'action'=>'login') 它们是级联的,所以将这样的放在页面的较高位置,它将首先被捕获如果路径匹配。
    • 这行得通。保证,'id' 参数是必需的。您能否在“id”是可选的地方制定路线代码解决方案?我取出 (/) 或添加 array('id' => '.*') 作为 Route::set() 的第三个参数,但它不起作用。
    猜你喜欢
    • 2015-09-14
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-06-24
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多