0

我在扩展一些我想用 Phalcon 访问的 URL 时遇到了一些问题。现在我正在使用单个模块设置(如此处所引用。如果我想访问以下内容,这非常有用:

mysite.com/foo/start
mysite.com/bar/start

但我想做的是扩展它,这样我就可以拥有类似的东西:

mysite.com/foo/baz/start
mysite.com/bar/baz/start

目前,对于我的单模块设置,我的 index.php 中有以下内容:

$loader = new \Phalcon\Loader();
$loader->registerDirs(array(
    '../app/controllers/',
    '../app/models/'
))->register();

$di->set('view', function(){
    $view = new \Phalcon\Mvc\View();
    $view->setViewsDir('../app/views/');
    $view->registerEngines(array(
        ".volt" => 'volt'
    ));
    return $view;
});
.... other stuff

我有一个像这样的目录结构:

app
- controllers
    - fooController.php
    - barController.php
- models
- views
    - foo
    -bar

我不太确定最好的方法是什么。我可以将站点迁移到多模块设置,但我想知道是否有办法“按原样”执行此操作。主要问题似乎是多个路由会出现扩展“baz”。任何反馈都会非常有帮助!

4

1 回答 1

1

我会使用 FooController.php(带有 FooController 类名),这样你就不会遇到类 unix 操作系统的问题。

您可以在服务文件中使用自定义路由docs)(或者在 index.php 中,如果这是您的设置)

例子:

$router = new \Phalcon\Mvc\Router();
//Define a route
$router->add(
    "/foo/baz/:action",
    array(
        "controller" => "Foo",
        "action"     => "1",
    )
);

或者

$router = new \Phalcon\Mvc\Router();
//Define a route
$router->add(
    "/foo/baz/start",
    array(
        "controller" => "foo",
        "action"     => "start",
    )
);

你也可以bazAction在你的控制器中制作'start'作为参数的控制器。

Bar控制器的方法相同。

于 2014-08-11T06:37:16.953 回答