我正在尝试在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 :(得分:1)
在codeigniter中,全局codeigniter对象在您的视图中不可用,因此您必须获得对它的引用。
尝试以下
$ci =& get_instance();
将它放在顶部,并将您的电话替换为$ this:
$ci->load->library('table');
$ci->table->add_row('Username', form_input('username'));
echo $ci->table->generate();