Я пытаюсь создать форму в Codeigniter, чтобы ее элементы были частью таблицы и поэтому хорошо выровнены. Здесь страница просмотра:
<div id="login">
<h3>Log in</h3>
<?php
$attributes = array('id'=>'form_login');
echo validation_errors();
echo form_open('login/main', $attributes);
//probably a bad idea to load libraries in views, but what the heck?!
$this->load->library('table');
$this->table->add_row('Username', form_input('username'));
echo $this->table->generate();
//echo 'Username: ';
//echo form_input('username') . '</br>';
echo 'Password: ';
echo form_password('password') . '</br>';
echo form_submit('submit', 'Log in');
?>
<br/><br/>
<a href="#">Forgot Password</a> <br/>
<a href="#">New User? Register</a>
</div>
Две строки прокомментировали, как это было раньше. Теперь я получаю следующую ошибку: вызовите функцию-член add_row() для не-объекта. Почему таблица не является объектом? Я попытался загрузить библиотеку в контроллер, но ошибка сохраняется. Пожалуйста помоги!
В codeigniter глобальный объект codeigniter недоступен в ваших представлениях, поэтому вам нужно получить ссылку на него.
Попробуйте следующее
$ci =& get_instance();
Поместите это вверху и замените свои вызовы на $ this следующим образом:
$ci->load->library('table');
$ci->table->add_row('Username', form_input('username'));
echo $ci->table->generate();