2012-07-02 5 views
1

У меня есть код:Как я могу повторно использовать переменную более эффективно в cakePHP?

 $getCookieData = $this->Cookie->read('data'); 
    $getUser = $this->User->find('first', array('conditions' => array('User.username' => $getCookieData['username']))); 

В основном я использую это во многих местах, чтобы получить информацию пользователей и либо показать ее, сравнить и т.д. Мне было просто интересно, если бы был более эффективным способ использовать переменную вокруг моего сайта, вместо того, чтобы много повторять.

+0

Почему бы не использовать сеансы вместо чтения данных cookie? –

+0

Вы считаете, что занятия более уместны? – Peza

+0

@SamPerrin: Seesion имеет ограничение по сроку, которое истекло, ваши данные не будут доступны, если вы не воссоздаете его и не сохраните свои данные снова – Blaster

ответ

0

Вы можете обернуть, что в функции:

public function getUSer() 
{ 
    $getCookieData = $this->Cookie->read('data'); 
    $getUser = $this->User->find('first', array('conditions' => array('User.username' => $getCookieData['username']))); 
    return $getUser; 
} 

И называют это как $this->getUSer(). Вы должны поместить это в класс в контексте вашего текущего значения $this, например, в классе, где эти функции присутствуют.

Вы также можете сделать это static (например, public static function getUSer(){...}), и в этом случае вы могли бы вызвать его напрямую, используя className::getUSer() синтаксис.

+0

Должен ли я помещать эту функцию в AppController? – Peza

+0

@SamPerrin: Да, вы правы. В принципе, вы должны ввести его в контроллер на основе ваших потребностей. Если вы используете это на нескольких страницах, вы должны поместить его в контроллер уровня приложения или, если в конкретном месте, то только вставьте только этот контроллер – Blaster

Смежные вопросы