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

发布于 2024-09-10 23:25:21 字数 725 浏览 4 评论 0原文

我正在学习cakePHP 1.26。
当我在控制器中创建函数时,我想到了一个问题。
如何最大限度地提高 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";

请指教。

I am learning cakePHP 1.26.
A question came across my mind when I was creating a function in a Controller.
How do I maximize the usability of a self-defined function in CakePHP.

Here is my sample code:

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";
        }
}

and then in a .ctp file, I will make use of this function:

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

Please advise.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

旧竹 2024-09-17 23:25:21

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

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

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

Avoid the use of $this->requestAction() - hello() should be called from the view action and the result passed as a view variable.

Reusability is managed on a cascading system - on the controller it may be accessed by any method on the same controller. On app_controller it can be accessed from any controller. The same principle applies if it is data related - it goes on the model or app_model.

By applying the principles of MVC and OO properly, you're already doing things optimally.

伤感在游骋 2024-09-17 23:25:21

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

if($session->read('user')){
    echo "welcome back, my friend";
}else{
    echo "Hello World";
}

It seems for me that you can do the job easier. You do not need that method in your controller. You can access anything stored in the session by using Session helper:

if($session->read('user')){
    echo "welcome back, my friend";
}else{
    echo "Hello World";
}
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文