我正在学习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";
请告知。
答案 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的原则,你已经做了最佳的事情。