私は 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ファイルでも生成されるため、データベースは正常に接続されています。
何かを追加するのを忘れたのですが、なぜこの問題が発生するのですか?