Доступ к модели из представления - PullRequest
0 голосов
/ 26 мая 2011

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

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

$data['myvariable'] = $this->mymodel->myfunction();

Эта функция в модели проверяет все записи из базы данных, где появляется имя пользователя пользователя, и вставляет в массив все идентификаторы событий.Я попытался добавить дополнительный оператор if перед ссылками в цикле foreach, который проверял, находится ли идентификатор ссылки в массиве, но возникли некоторые проблемы с контроллером.(я думаю, что я не мог присвоить массив переменной $data['myvariable']).

Я знаю, что доступ к модели из представления не является "правильным" ... Кто-нибудь знает, как решить эту проблему?

Ответы [ 2 ]

3 голосов
/ 26 мая 2011

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

$enrolled = $this->your_model->your_method($param);
if($enrolled){

process links here;

}

0 голосов
/ 26 мая 2011

Я бы сказал, это зависит от того, какой MVC вы используете. Возможно, вам придется загрузить модель в представлении, чтобы использовать ее из представления, в идеале это не совсем правильный подход, поскольку вы могли бы загрузить ее через контроллер и установить ее в качестве переменной для передачи в представление, если передаваемая переменная содержит несколько выходов, таких как запрос из БД или что-то еще, вы можете передать его представлению как объект массива, а затем в представлении сделать некоторое время, для foreach, что угодно в этом массиве.

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