如何最大化 CakePHP 中自定义函数的可用性
我正在学习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 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
避免使用
$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.
在我看来,你可以更轻松地完成这项工作。您的控制器中不需要该方法。您可以使用会话助手访问存储在会话中的任何内容:
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: