CodeIgniter пропускает различные переменные через шаблон

Я новичок в CodeIgniter, и у меня возникла следующая проблема:

Когда я загружаю представление из контроллера, я использовал следующий код:

 $this->load->view('includes/header');
$this->load->view('includes/main_menu');
$this->load->view('show_users');
$this->load->view('includes/footer');

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

Ситуация сейчас такая:
контроллер — Шаблон — просмотр

Контроллер: (show_users.php)

$data['userdata'] = $this->users_model->get_all_users();
$data['page'] = 'show_users';

$this->load->view('template', $data);

Шаблон: (template.php)

$this->load->view('includes/header');
$this->load->view('includes/main_menu');
$this->load->view($page, $userdata);
$this->load->view('includes/footer');

Вид: (show_users.php)

<div id="users_table">
<table border="1">
<tr>
<th>ID</th><th>First Name</th><th>Last Name</th>
</tr>
<?php
foreach($userdata as $r): ?>
<tr><td><?php echo $r['id']; ?></td><td><?php echo $r['firstName']; ?></td><td><?php echo $r['lastName']; ?></td></tr>
<?php endforeach; ?>
</table>
</div>

Теперь я передаю переменную ‘userdata’ к представлению, используя

$this->load->view($page, $userdata);

и это прекрасно работает. Но я хочу использовать этот шаблон на всем сайте, поэтому второй параметр не всегда $ userdata. (может быть случайным массивом, строкой и т. д. с другим именем переменной)

Есть ли способ, которым я могу решить это?

заранее спасибо

1

Решение

Я думаю, что это будет работать нормально, если вы используете разумные имена:

 $data['userdata'] = $this->users_model->get_all_users();
$data['page'] = 'show_users';
$this->load->view('template', $data);

$this->load->view($page, $userdata);

так же может быть:

 $data['view_data'] = $this->users_model->get_all_users();
$this->load->view($page, $view_data);

Всегда используя $data['view_data'] в вашем контроллере вы можете назначить ему любую вещь, если индекс остается прежним.

больше примеров:

 $data['view_data'] = some_other_method_thats_not_getting_users();
$this->load->view($page, $view_data);
0

Другие решения

Других решений пока нет …

По вопросам рекламы ammmcru@yandex.ru
Adblock
detector