如何在CakePHP中最大化自定义函数的可用性

时间:2010-07-21 14:56:25

标签: cakephp cakephp-1.2

我正在学习cakePHP 1.26 当我在Controller中创建一个函数时,我想到了一个问题 如何在CakePHP中最大化自定义函数的可用性。

以下是我的示例代码:

function hello($id=null){

       $IfLoggedIn=$this->Session->check('user');

       if($IfLoggedIn){
        //search the database
        //$result=doing something from the search results
        $this->set('userInfo',$result);
        return "2";

       else if(!$IfLoggedIn && $id!=null){
       return "1";
        }

       else if($sid==null){
       return "0";
        }
}

然后在.ctp文件中,我将使用此功能:

$u = $this->requestAction('../hello'); 
if($u==2){
echo "welcome back, my friend";
}
else{
echo "Hello World";

请告知。

2 个答案:

答案 0 :(得分:1)

对我而言,您可以更轻松地完成工作。您的控制器中不需要该方法。您可以使用Session helper

访问会话中存储的所有内容
if($session->read('user')){
    echo "welcome back, my friend";
}else{
    echo "Hello World";
}

答案 1 :(得分:1)

避免使用$this->requestAction() - hello()应该从视图操作调用,结果作为视图变量传递。

可重用性在级联系统上管理 - 在控制器上可以通过同一控制器上的任何方法访问。在app_controller上,可以从任何控制器访问它。如果它与数据相关,则适用相同的原则 - 它在模型或app_model上。

通过适当地应用MVC和OO的原则,你已经做了最佳的事情。