如何使用默认函数调用cakephp框架中控制器的函数?

如何使用默认函数调用cakephp框架中控制器的函数?,php,cakephp,frameworks,routes,Php,Cakephp,Frameworks,Routes,我是cakephp框架的新手。我不能调用控制器的函数。 控制器- class PagesController extends AppController { public $name = 'Pages'; public $uses = array(); public function display() { $path = func_get_args(); $count = count($path); if (!$cou

我是cakephp框架的新手。我不能调用控制器的函数。 控制器-

class PagesController extends AppController {
    public $name = 'Pages';
    public $uses = array();

    public function display() {
        $path = func_get_args();

        $count = count($path);
        if (!$count) {
            $this->redirect('/');
        }
        $page = $subpage = $title_for_layout = null;

        if (!empty($path[0])) {
            $page = $path[0];
        }
        if (!empty($path[1])) {
            $subpage = $path[1];
        }
        if (!empty($path[$count - 1])) {
            $title_for_layout = Inflector::humanize($path[$count - 1]);
        }
        $this->set(compact('page', 'subpage', 'title_for_layout'));
        $this->render(implode('/', $path));
    }

    public function register() {
        $this->set('fdf', 'chandan');
        $this->render('home1');
    }
}
但是我调用display()。但我不是在调用register()。我的routes.php文件类似于-

Router::connect('/', array('controller' => 'pages', 'action' => 'display', 'home'));
Router::connect('/pages/*', array('controller' => 'pages', 'action' => 'display'));
请帮帮我。如何在cakephp中从视图调用控制器函数。
你要做什么呢

我想说几点,路由文件用于定义自定义slug/url,请在此处查看您的第一个路由定义:

Router::connect('/', array('controller' => 'pages', 'action' => 'display', 'home'));
这意味着“www.mysite.com/”应该链接到控制器页面、动作显示并将第一个参数作为主页传递

这可以通过简单的“www.mysite.com/pages/display/home”来访问,但使用“/”作为路径更整洁。一般规则是“www.mysite.com/controller/action/param1/param2/etc…”

因此,按照此逻辑,您可以访问新的操作方法,如下所示: “www.mysite.com/pages/register”

话虽如此。。。在使用MVC时,您应该真正遵循规定的约定,如果您要创建一个register方法,您应该将它包含在处理用户帐户的控制器中,即“UsersController”-“www.mysite.com/users/register”

此外,除非在特殊条件下必须渲染单独的视图,否则不应该真正需要使用$this->render()

总之,包含相关控制器(即www.mysite.com/users/login和www.mysite.com/users/register)中的所有操作,除非您确实需要呈现默认值以外的内容,否则不要直接指定$this->render(/users/register.ctp将是www.mysite.com/users/register的默认值)和路由用于创建更整洁或自定义的URL


我强烈建议您阅读并遵循博客教程来掌握这些概念。

也许您应该阅读一些MVC设计模式的基础知识该视图不调用控制器功能。调度器调用控制器来呈现我在codeigniter上工作过的视图。我们可以在哪里为call编写like?您在哪个控制器中工作?您需要更好地解释您的代码页面控制器正在工作