【发布时间】:2013-03-10 10:18:38
【问题描述】:
我是 CodeIgniter 的新手,遇到了一个我一直无法解决的问题。这是我的模型类(文件名=tenant.php):
<!-- language php -->
class tenant extends CI_Model {
function getTenants() {
$this->db->select()->from('hrs_tenants');
$query=$this->db->get();
return $query->result_array();
}
}
我的控制器类(文件名=tenants.php):
<!-- language php -->
class tenants extends CI_Controller {
function index() {
$this->load->model('tenant');
$data['tenants']= $this->tenant->getTenants();
echo "<pre>"; print_r($data['tenants']); echo "</pre>";
$this->load->view('tenants', $data);
}
}
最后是我的视图文件(tenants.php):
<!-- language php -->
<html>
<head>
<title>Tenants Listing</title>
</head>
<body>
<h1>Tenants Listing</h1>
<?php
if(!isset($tenants)) {
?>
<p>There are no Tenants to List</p>
<?php
} else {
foreach($tenants as $row){?>
<h2><a href="<?php base_url()?>tenants/tenant<?php $row['T_ID']?>"><?php $row['T_Name']?></a></h2>
<p>Mobile : <?php $row['T_Mobile']?></p>
<?php
}
}
?>
</body>
</html>
现在回到问题 - 它应该显示租户名称和租户手机号码,但视图不显示它。相反,它显示静态 HTML 视图。但它是如何重复标签的。这是视图文件的 html 输出/呈现的 HTML:
<pre>Array
(
[0] => Array
(
[T_ID] => 1
[T_Name] => John Doe
[T_Mobile] => 030112345678
)
[1] => Array
(
[T_ID] => 2
[T_Name] => Haider Hassan
[T_Mobile] => 033412345678
)
)
</pre><html>
<head>
<title>Tenants Listing</title>
</head>
<body>
<h1>Tenants Listing</h1>
<h2><a href="tenants/tenant"></a></h2>
<p>Mobile : </p>
<h2><a href="tenants/tenant"></a></h2>
<p>Mobile : </p>
</body>
</html>
我的数据库连接良好,因为我也直接在控制器文件中做了一个回显,它也在pre标签内的HTML文件中生成。
我是不是忘记补充了,为什么会遇到这个问题?
【问题讨论】:
-
你试过没有foreach循环吗?尝试直接使用
$tenants['T_ID']看看是否可行。 -
当数据从模型返回时,首先在控制器中测试它以确保您的模型返回所需的数据
-
您是否自动加载了数据库助手。如果没有,那么您需要在模型中加载 $this->load->database() 。您可能还想在模型之外运行 $query->result()
-
@dcd018 按照你说的直接试了。它给出了错误。严重性:通知消息:未定义索引:T_ID
-
@MuhammadNasir 我认为模型正在返回数据或
标记中的数组不会生成..
标签: php codeigniter