Использование CodeIgniter – это плохая практика загрузки представления в цикле

Я только начал работу с CodeIgniter, и мне интересно, замедлит ли это, если я вложу такой код в цикл.

$data['title'] = 'the title'; $data['content'] = 'blah blah blah'; $this->load->view('result', $data); 

Я не совсем уверен, как CodeIgniter обрабатывает все, или сам PHP. Например, если я это сделал. Будет ли файл читать на каждой итерации?

  $data['title'] = 'the title'; $data['content'] = 'blah blah blah'; include 'result.php'; 

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

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

Я бы не рекомендовал вызывать вашу модель из вашего представления. Это не лучшая практика при попытке придерживаться стандартов среды MVC. Вызовите модель из своего контроллера и передайте массив «users» в представление как часть $ data. Теперь вы получаете доступ к массиву $ users так же, как переменная в представлении. Подобно тому, что у вас было, но это получает доступ к модели обратно в контроллер.

контроллер

 $data['title'] = 'the title'; $data['content'] = 'blah blah blah'; $data['users'] = $this->user_model->get_users(); $this->load->view('result', $data); 

Посмотреть

 <?php foreach ($users as $user) { echo '<p>' . $user->first_name . '</p>'; echo '<p>' . $user->last_name . '</p>'; }?> 

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

Петля в представлении.

 <div> <?php foreach ($this->user_model->get_users() as $users): ?> <p><?php echo $user->first_name;?></p> <p><?php echo $user->last_name;?></p> <?php endforeach; ?> </div> 

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