как вы максимизируете удобство использования самоопределенной функции в CakePHP - PullRequest
0 голосов
/ 21 июля 2010

Я изучаю тортPHP 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";

Пожалуйста, сообщите.

Ответы [ 2 ]

1 голос
/ 21 июля 2010

Избегайте использования $this->requestAction() - hello() должно вызываться из действия просмотра, а результат передается как переменная просмотра.

Управление возможностью повторного использования в каскадной системе - на контроллере это можетдоступ к нему любым способом на одном контроллере.На app_controller доступ к нему можно получить с любого контроллера.Тот же принцип применяется, если он связан с данными - он действует по модели или app_model.

При правильном применении принципов MVC и OO вы уже делаете все оптимально.

1 голос
/ 21 июля 2010

Мне кажется, что вы можете сделать работу проще. Вам не нужен этот метод в вашем контроллере. Вы можете получить доступ ко всему, что хранится в сеансе, используя Помощник сеанса :

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