CakePHP从库中调用函数

时间:2013-11-14 15:23:52

标签: cakephp cakephp-2.0 cakephp-2.1 cakephp-2.3

我正在尝试创建一个包含一组函数的库。在我看来,我希望我的表单能够访问一个函数并执行它。下面是我的php文件,我放在App / Lib文件夹

myClass.php:

class myClass{
       public function  someFunction(){
            $parentPage =$this->referer();
            //do something
            $this->redirect($parentPage);
       }    
}

然后,在我看来,我有一个表单(我没有使用表单助手(我也不想),我想要访问我的库类,并运行,并重定向到给定页面(在此示例中,但问题是,蛋糕总是试图在控制器文件夹中的控制器中找到该函数。如何告诉表单使用控制器文件夹外的类?

我的观点:

 <form id="login-user" action="/Lib/myClass/someFunction" method="post">
   //form stuff here
 </form>

但是我找不到错误。

这是否能够完成?

1 个答案:

答案 0 :(得分:0)

你可以告诉蛋糕你要从哪个文件夹路径调用你的视图。

把它放在你的引导程序中 App :: build(array('View'=&gt; array($ my_lib_folder_path.DS)));

这里是我建立的片段,让蛋糕搜索我的视图文件夹中的所有文件夹。因为我喜欢在文件夹中安排我的代码。即 查看/ CompanyManagement / AddCompanies / index.ctp 查看/ CompanyManagement / EditCompanies / index.ctp 查看/ CompanyManagement / DeleteCompanies / disable.ctp 视图/ CompanyManagement / DeleteCompanies / delete.ctp

我的代码告诉蛋糕搜索我的视图文件夹下的所有文件,并查看子文件夹以查找我想要的特定视图。但从搜索中排除布局,元素和帮助文件夹。

应用程序/配置/ bootstrap.php中

define('ELEMENTS',    APP.'View'.DS.'Elements');
define('HELPERS',     APP.'View'.DS.'Helper');
define('LAYOUTS',     APP.'View'.DS.'Layouts');
define('VIEWS',       APP.'View'.DS)


includeViews();

function includeViews() {
    App::uses('Folder', 'Utility');
    $folder        = new Folder(VIEWS);
    $folders_paths = current($folder->read($sort = true, $exceptions = false, $fullPath = true));

    foreach( $folders_paths as $folder_path ) { 
      $isAHelperPath   = (new Folder($folder_path))->inPath(HELPERS);
      $isALayoutPath   = (new Folder($folder_path))->inPath(LAYOUTS);
      $isAnElementPath = (new Folder($folder_path))->inPath(ELEMENTS);
      if ( ! $isAHelperPath && ! $isALayoutPath && ! $isAnElementPath ) {
        App::build(array('View' => array( $folder_path.DS )));
      }
    }
}