В моем приложении я пытаюсь заполнить список меню боковой панели строками из таблицы базы данных. В частности, я пытаюсь получить имя команды, где у тренера тот же user_id, что и у пользователя, который вошел в систему. Я хочу перечислить команды тренера, вошедшие в систему, в меню.
В моей модели я использую Active Record для получения желаемых результатов запроса:
public function get_team()
{
$this->db->select('teamname')->from('teams')->where('coaches', $this->session->userdata('user_id'));
$this->db->order_by('teamname', 'asc');
$query = $this->db->get();
if($query->num_rows() > 0)
{
foreach($query->result_array() as $row)
{
$data[] = $row;
}
return $data;
}
}
В контроллере я не уверен, как это сделать, чтобы передать данные массива в мое представление. В моей индексной функции я делаю это:
public function index()
{
if (!$this->tank_auth->is_logged_in()) {
redirect('/auth/login/');
} else
{
$data['title'] = 'Team';
$data['main_content'] = 'team_v';
$data['username'] = $this->tank_auth->get_username();
$data['coach'] = $this->tank_auth->is_admin();
$this->load->vars($data);
$this->load->view('includes/template');
}
}
И в соответствующей функции контроллера я пытаюсь отправить данные непосредственно в представление боковой панели (которое включено в ранее загруженный файл шаблона):
public function get_team()
{
$data = array(
'result' => $this->team_m->get_team());
$this->load->view('includes/sidebar', $data);
}
Код представления выполняет стандартный foreach и выглядит следующим образом:
<li>Teams</li>
<ul>
<?php /* if (empty($result)): */ ?>
<li>Create a team</li>
<?php /* else: */ ?>
<?php foreach ($result as $row): ?>
<li><?php echo $row['teamname'];?></li>
<?php endforeach; ?>
<?php /* endif; */ ?>
</ul>
<li>Messages</li>
<li>My profile</li>
<li><a href="<?php echo base_url('index.php/auth/logout'); ?>">Logout</a></li>
Отправка массива $data на боковую панель таким образом не работает. Я также пытался вручную загрузить все представления в шаблоне и передать данные представлениям, но безрезультатно. Независимо от того, как я его передаю, он дает мне ошибку «Недопустимый аргумент, указанный для foreach ()», что, на мой взгляд, означает, что данные не возвращаются в массиве.
Однако, если я сделаю это в функции контроллера:
public function get_team()
{
$data = array(
'result' => $this->team_m->get_team());
$this->load->view('get_team_v', $data);
}
и создайте представление get_team_v с точно таким же кодом, что и в представлении боковой панели выше, тогда желаемый результат будет указан идеально. Я также выполнил тест затронутых_рядов и подтвердил, что часть запроса хороша. Что мне нужно сделать, чтобы данные массива также отображались в шаблонном представлении боковой панели?
$row->teamname;
- person Albzi   schedule 28.10.2013