0

我正在学习 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";

请指教。

4

2 回答 2

1

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

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

通过正确应用 MVC 和 OO 的原则,您已经在以最佳方式做事。

于 2010-07-21T15:31:41.230 回答
1

在我看来,你可以更轻松地完成这项工作。您不需要在控制器中使用该方法。您可以使用Session helper访问存储在会话中的任何内容:

if($session->read('user')){
    echo "welcome back, my friend";
}else{
    echo "Hello World";
}
于 2010-07-21T15:17:21.373 回答