CAKEPHP中调用其它类的方法【续】

 

大家好,我是Jack.欢迎来到我的博客空间。

 

本文目标:在当前类中调用其它类中的自己写的方法(Personal Function)。

 

上次文章说到了如何在一个类加载另一个类的三种方法:App::import(),ClassRegistry::init(),Controller::LoadModel();

 

相信大家已经可以从其它类调用CakePHP的公用方法,如find('all'),但相信很多人还是不能自如地调用自己写的方法,总是出错。呵呵

 

看代码:

 

1)建立测试模型文件 app/models/test.php

 

<?php

 

class Test extends AppModel{

 

public $var = 'Test';

 

       public $useTable = false;   //不使用数据库,这里为false

 

       function dis2($string) {

 

if ($string) {

 

return "这里提Model的测试方法dis2,  输出结果为: " . $string;

 

}

 

else { 

 

                       echo "这里提Model的测试方法dis2, 无输出结果为"; 

 

                }

 

       }

 

}

 

?>

 

2) 建立测试控制器 app/controllers/tests_controller.php

 

<?php

 

class TestsController extends AppController{

 

     var $name = 'Tests';

 

     var $uses = '';    //不自动加载对应的Model

 

function dis($string) {

 

if ($string) {

 

return "这是控制器中的dis方法,输出结果为:" . $string;

 

}

 

else {

 

                     echo "这是控制器中的dis方法,无输出结果"; 

 

                }

 

}

 

}

 

?>

 

3)调用测试代码

 

<?php

 

// 从模型类中调用方法

 

App::import('Model','Test');

 

$test2 = new  Test();

 

pr($test2->dis2("11111111111"));

 

// pr($test2->dis("这是会出错的,无法显示,想想为什么?"));

 

echo "<br>";

 

//从控制器类中调用方法

 

App::import('Controller','Tests');

 

$test = new TestsController();

 

pr($test->dis("222222222222"));

 

// pr($test->dis2("这也是会出错的,无法显示,能相通吗?"));

 

?>

 

注意以上从model和controller中分别调用方法的区别!

 

结论:从model或controller中调用其方法时,要分别对类型加以说明(是model或controller),另调用controller中方法时,类名用复数,初始化类时一定要加上"controller",  这也算是cakephp的特色吧。呵呵

 

相信通过这两篇文章,各位已经可以畅通无阻地调用任意类中的方法了。呵呵

 

你可能感兴趣的:(数据库,String,function,测试,import,cakephp)