如何使用默认函数调用cakephp框架中控制器的函数?
我是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
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?您在哪个控制器中工作?您需要更好地解释您的代码页面控制器正在工作