【问题标题】:Creating routes for controllers in subdirectories in Kohana 3.2在 Kohana 3.2 的子目录中为控制器创建路由
【发布时间】:2015-12-11 09:47:23
【问题描述】:

我的问题与this 问题几乎相似。他的目录又多了 2 个,而我的只有 1 个。这个问题也没有答案。

这是我要创建的目录:

班级 |--控制器 |--测试 |--general.php

我想要做的就是让路由识别我正在访问子目录中的控制器。像这样的:

本地主机/stackoverflows/测试/一般 本地主机/stackoverflows/测试/一般/索引 本地主机/stackoverflows/tests/general/lambda 本地主机/stackoverflows/tests/general/lambda/parameter_1

我尝试了所有其他解决方案,但没有任何效果。没有一个教程。或者来自经过实际测试的论坛的问题的答案。即使在官方 kohana 论坛网站上。所以我在这里碰碰运气。

提前致谢!

【问题讨论】:

    标签: php routes kohana kohana-3 kohana-3.2


    【解决方案1】:

    要将控制器保存在该文件夹结构中,您应该将控制器命名为 Controller_Tests_General,并将其放置在文件夹 /controller/tests/general 中。在那里你可以创建你的动作。请参见下面的示例。

    Class Controller_Tests_General extends Controller
    {
    
        public function action_index()
        {
            // your code here
            die('Do I end up here?');
        }
    
        public function action_lamdba()
        {
            // your code here
            // id should be defined in your bootstrap file as a Route to work like this.
            $parameter_id = $this->request->param('id');
        }
    }
    

    【讨论】:

    • Yyyyeah,这正是我的控制器的样子。只需要一个额外的模具。我正在寻找的是正确的路由代码,它可以让 kohana 3.2 识别我正在访问 action_lambda(),因为我得到的只是一个“无效的 url”错误消息。感谢您的回复,顺便说一句。
    • 没问题。我不知道如何以您想要的方式获得uri。虽然当您的 uri 为 /tests_general、/tests_general/index 或 /tests_general/lamdba 时会到达控制器。但这不是你想要的吧?
    猜你喜欢
    • 2012-01-21
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-04-21
    • 1970-01-01
    • 1970-01-01
    • 2011-04-22
    相关资源
    最近更新 更多