0

我是 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 文件中生成。

我是不是忘了添加一些东西,为什么会遇到这个问题?

4

2 回答 2

1

控制器文件:

class tenants extends CI_Controller {
    function  index() {
        $this->load->model('tenant');
        $data['tenants']= $this->tenant->getTenants(); //Get rid of Echo
        $this->load->view('tenants', $data);
    }
}

查看文件:

<html>
    <head>
        <title>Tenants Listing</title>
    </head>
    <body>
    <h1>Tenants Listing</h1>
    <?php
        if(!isset($tenants)) {
        echo '<p>There are no Tenants to List</p>';
        } else {
            foreach($tenants as $row): ?>
                <h2><a href="<?= base_url() . 'tenants/tenant/' . $row['T_ID']?>"><?= $row['T_Name'] ?></a></h2>
        <p>Mobile : <?= $row['T_Mobile'] ?></p>
    <?php endforeach;
        }
    ?>
    </body>
</html>

是的,做回声很酷。不是问题。但是,尽量减少关闭 php 标记的使用...尝试连接字符串而不是在每次中断后打开 php...

问题?

于 2013-03-10T11:11:45.797 回答
0

我认为现在唯一的解决方案是在每个 $row 上写 echo

我现在这样做了

    <h2><a href="<?php echo base_url()?>tenants/tenant/<?php echo $row['T_ID']?>"><?php echo $row['T_Name']?></a></h2>
    <p>Mobile : <?php echo $row['T_Mobile']?></p>

可以在任何地方写回声还是有更好的解决方案?

于 2013-03-10T10:44:44.633 回答