这应该是一个简单的数组传递给视图。控制器设置为从表中提取所有数据。我已初始化表库并使用$ this-> load->模型(数组('Account')加载模型代码。我已经构建了完整的crud方法。
我在视图页面上得到一个未定义的变量。
控制器代码是:
public function index(){
$this->load->library('table');
$children = array();
$this->load->model(array('Account'));
$children = $this->Account->get(); //retrieves all the records in the database
foreach ($children as $child){
$account = new Account();
$account->load($account->id);
$children[] = array(
$account->id,
$account->familyName,
$account->addr1,
$account->city,
$account->state,
$account->zip,
$account->phone1,
$account->email,
$account->parent_only,
);
}
$this->load->view('main_view');
$this->load->view('body_content_ma', array(
'body_content_ma' => $children,
));
}
在视图页面上,我收到一个错误,指出未定义的变量子项。您认为我在这里失踪了什么:
查看代码是:
<?php
$this->table->set_heading('ID', 'Family Name', 'City', 'State', 'Zip', 'Phone', 'Email', 'Parent only Pickup');
echo $this->table->generate($children);
?>
解答:
这是最终有效的编码。
我不得不回过头几次才能得到失踪的东西。
public function index(){
$this->load->library('table');
$children = array();
$this->load->model(array('Account'));
$account = $this->Account->get(); //retrieves all the records in the database
foreach ($account as $c){
$account = new Account();
$account->load($account->id);
$children[] = array(
$c->id,
$c->familyName,
$c->addr1,
$c->city,
$c->state,
$c->zip,
$c->phone1,
$c->email,
$c->parent_only,
);
}
//echo '<tt><pre>' . var_export($children, TRUE) . '</pre></tt>';
$this->load->view('main_view');
$this->load->view('body_content_ma', array(
'body_content_ma' => $children
));
}
我有一种感觉,我多次使用$ children并覆盖变量。我是正确的。一旦我宣布变量。我不应该再用它了。
当我将变量$ children重新分配给$ children = $ this-&gt; Account-&gt; get(); 我认为我有效地覆盖了之前声明为该行的数组。因此即使数组被填充,数组引用也被破坏了。
我确实在视图代码中使用了$ body_content_ma来生成表格。 一切都在现在呈现。
开始分页!
答案 0 :(得分:0)
您可以使用此代码..希望能为您效劳。
public function index(){
$this->load->library('table');
$children = array();
$this->load->model(array('Account'));
$data['children'] = $this->Account->get(); //retrieves all the records in the database
$this->load->view('main_view');
$this->load->view('body_content_ma',$data));
}
在视图中,您可以使用$ children作为数组来打印值。
答案 1 :(得分:0)
这将是我的功能;
public function index()
{
$this->load->library('table');
$this->load->model('Account_model');
$data['children'] = $this->Account_model->get();
foreach ($data['children'] as $child)
{
// Your foreach code...
}
$this->load->view('main_view');
$this->load->view('body_content_ma', $data);
}
答案 2 :(得分:0)
您的 view
:
<?php
$this->table->set_heading('ID',
'Family Name',
'City',
'State',
'Zip',
'Phone',
'Email',
'Parent only Pickup');
echo $this->table->generate($body_content_ma);
?>
的说明:强>
您正在将 body_content_ma
从您的控制器传递到您的视图而不是 children
,从而为您提供 undefined error
强>
修改强>
以下是生成表格行的数组格式
array
应包含 array of rows
。
$data = array(
array('Name', 'Color', 'Size'),
array('Fred', 'Blue', 'Small'),
array('Mary', 'Red', 'Large'),
array('John', 'Green', 'Medium')
);
echo $this->table->generate($data);
文档: http://ellislab.com/codeigniter/user-guide/libraries/table.html
答案 3 :(得分:0)
只是你遗漏的简单事物$ children变量被映射到$ body_content_ma 只需将$ children替换为$ body_content_ma。
echo $this->table->generate($children);
替换为
echo $this->table->generate($body_content_ma );