Элементы формы Codeigniter в виде таблицы

0

Я пытаюсь создать форму в 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() для не-объекта. Почему таблица не является объектом? Я попытался загрузить библиотеку в контроллер, но ошибка сохраняется. Пожалуйста помоги!

  • 0
    Задумывались ли вы об использовании CSS для выравнивания элементов вместо таблицы? Это может избавить вас от головной боли.
  • 1
    @dotslash, когда ваш контроллер расширяется от CI_Controller или ваша модель расширяется от CI_Molde, вы можете использовать $ this. в связи с этим вам нужно получить экземпляр от CI, чтобы иметь его
Показать ещё 2 комментария
Теги:
codeigniter

1 ответ

1
Лучший ответ

В codeigniter глобальный объект codeigniter недоступен в ваших представлениях, поэтому вам нужно получить ссылку на него.

Попробуйте следующее

$ci =& get_instance();

Поместите это вверху и замените свои вызовы на $ this следующим образом:

$ci->load->library('table');
$ci->table->add_row('Username', form_input('username'));
echo $ci->table->generate();
  • 0
    Это самый крутой ответ за всю историю! Спасибо. & = Выдавал ошибку, говоря «Undefined variable ci», но затем я изменил ее на =, и это сработало. Есть идеи, почему это может произойти (я новичок в PHP)? Еще раз спасибо и с новым годом! :) :)
  • 0
    Синтаксическая ошибка с моей стороны, на самом деле должна иметь bee = &, которая устанавливает $ ci в качестве ссылки на то, что возвращает get_instance () С новым годом!
Показать ещё 3 комментария

Ещё вопросы

Сообщество Overcoder
Наверх
Меню