CodeIgniter статический класс вопрос - PullRequest
0 голосов
/ 18 июня 2010

Если я хотел бы иметь несколько статических методов в моих моделях, чтобы я мог сказать User::get_registered_users() и сделать что-то вроде

public static function get_registered_users()
{
    $sql = "SELECT * FROM `users` WHERE `is_registered` = 0";
    $this->db->query($sql);
    // etc...
}

Можно ли получить доступ к объекту $this->db или создать новый для статического метода?

Ответы [ 2 ]

3 голосов
/ 14 сентября 2012

Все просто:

<code>get_instance()->db...

или

</p> <pre><code>$CI =& get_instance(); $CI->db->get('users')->result(); $CI->session->set_userdata('login', TRUE);

0 голосов
/ 18 июня 2010

Matt S верен, хотя Kohana была построена для PHP5, поэтому предыдущая совместимость не представляет большой проблемы.

Статические методы не имеют доступа к другим переменным.Если переменная была определена как self :: db, вы можете использовать ее тогда, и вам может потребоваться создать ее экземпляр таким способом.

Статические методы лучше всего подходят для вещей, которые не требуют объектов, таких какформатирование текста, перенаправление страниц и т. д.

...