我一直在网上搜索这个问题,但我似乎无法找到一个好的答案。我正在使用codeigniter框架版本2.1.4。
我有型号:company.php和tbl_name:company
<?php
class Company extends CI_Model
{
public function __construct()
{
$this->load->database();
}
public function getCompany(){
$q = $this->db->get('company');
if($q->num_rows() > 0)
{
foreach ($q->result() as $row)
{
$data[] = $row;
}
return $data;
}
}
}
我有控制器:home.php,我可以调用我创建的模型。
public function getAll(){
$this->load->model('company');
$data['results'] = $this->company->getCompany();
$this->load->view('branch', $data);
}
最后我查看了:branch.php,我可以在这里查看来自DB的数据
<?php
if(!empty($results))
{
foreach($results as $res)
{
echo "Name: ".$res->company;
}
}
?>
现在这就是问题:当我浏览控制器localhost / app / home / getAll时,它工作正常,因为我可以看到数据库中的数据示例:名称:ABC公司,但是当我浏览视图localhost / app / home / branch我在下面收到此错误。
A PHP Error was encountered
Severity: Notice
Message: Undefined variable: results
Filename: views/branch.php
Line Number: 11
1
你能帮帮我吗?感谢
答案 0 :(得分:0)
使用:
if(isset($results))
而不是:
if(!empty($results))
在您看来,branch.php
答案 1 :(得分:0)
试试这个
$this->load->view('branch', array('data' => $data));
答案 2 :(得分:0)
与方法getall()类似,你应该在同一个控制器中有方法分支。
public function getAll(){
$this->load->model('company');
$data['results'] = $this->company->getCompany();
$this->load->view('branch', $data);
}
public function branch(){
$this->load->model('company');
$data['results'] = $this->company->getCompany();
$this->load->view('branch', $data);
}
错误是因为您没有传递数据[&#39;结果&#39;]来查看。
答案 3 :(得分:0)
您可以尝试这种替代方式
将您的公司模式更改为:
public function getCompany(){
$q = $this->db->get('company');
return $q->result_array();
}
将您的观点更改为:
foreach($results as $res)
{
echo "Name: ".$res['company'];
}
OR
将您的公司模式更改为:
public function getCompany(){
$q = $this->db->get('company');
return $q->result();
}
将您的观点更改为:
foreach($results as $res)
{
echo "Name: ".$res->company;
}