Codeigniter 2 с использованием библиотеки в цикле - PullRequest
0 голосов
/ 09 декабря 2011

У меня есть проблема, я продолжаю бить стену, и мне нужны некоторые предложения о том, как лучше всего обойти это.

У меня есть цикл, который извлекает данные из моей модели, но в этом цикле я должен проверить его по библиотеке, но я не могу найти хороший способ сделать это.

например, я получил метод модели, который выглядит примерно так:

public function GetUserList() {

    $this->db->select('username, email, joindate, rank')->from('user');
    $query = $this->db->get();

   //loop through data and bind to an array.
   foreach ($query->result() as $row) {
        $users[] = $row;
    }

    return $users;
}

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

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

другая проблема, которую я обнаружил, когда вы создали библиотеку, она не перезапускала объект как новый (как в обычном PHP).

Я надеюсь, что у кого-то есть хороший способ разрешить неудачу, подобную этой.

Последний пункт, если он имеет значение, я также использую Twig для обработки своих представлений.

Ответы [ 2 ]

1 голос
/ 09 декабря 2011

Вам не нужно загружать каждый файл библиотеки, используя функцию load().Функция load() предназначена для загрузки одного экземпляра в глобальном (CI) пространстве имен.Если вы хотите работать с коллекцией объектов, вам следует require файл, как обычно в PHP.

0 голосов
/ 09 декабря 2011

Я бы лично присоединился к вашей таблице предпочтений, если это возможно. Таким образом, вам не придется делать отдельный запрос для каждого пользователя.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...