按条件更正传输VIEW(CodeIgniter)

时间:2014-06-04 05:57:38

标签: php codeigniter

我是PHP和CodeIgniter.I的新手。我无法完全理解如何通过某种条件正确传输VIEW。我认为这个例子不正确,它可能比我的更多,更美丽和PRO。告诉我这是怎么回事?

我的第1版

控制器:

class Index_controller extends CI_Controller {
    public function index(){
        $data["account"]=$this->ion_auth->logged_in()?true:false;
        $this->load->view('header');
        $this->load->view('leftFrame', $data);
        $this->load->view('rightFrame');
        $this->load->view('index');
        $this->load->view('footer');
    }
}

查看:

<div class="leftFrame">
    <?php 
        if($account == true){
            echo '
                <div class="account">
                    <img src="/images/pic.png">
                </div>
            ';
        }
    ?>
</div>

我的第2版

控制器:

class Index_controller extends CI_Controller {
    public function index(){
        if($this->ion_auth->logged_in()){
            $data["account"] = '<div class="account">
                                    <img src="/images/pic.png">
                                </div>';
        }
        $this->load->view('header');
        $this->load->view('leftFrame', $data);
        $this->load->view('rightFrame');
        $this->load->view('index');
        $this->load->view('footer');
    }
}

查看:

<div class="leftFrame">
    <?php 
        echo $account;
    ?>
</div>

我的第3版

控制器:

class Index_controller extends CI_Controller {
    public function index(){
        if($this->ion_auth->logged_in()){
            $data["account"] = $this->load->view('account');
        }
        $this->load->view('header');
        $this->load->view('leftFrame', $data);
        $this->load->view('rightFrame');
        $this->load->view('index');
        $this->load->view('footer');
    }
}

查看(account.php):

<div class="account">
    <img src="/images/pic.png">
</div>

VIEW(leftFrame.php):

<div class="leftFrame">
    <?php 
        echo $account;
    ?>
</div>

正确吗?:

1? 2? 3?其他

1 个答案:

答案 0 :(得分:0)

1 st 选项看起来正确,您要传递变量中的所有值并在视图中操作HMTL ..

2 nd 您正在传递HTML代码的变量,语法正确但视图是操纵HMTL的最佳位置。

3 rd 选项看起来不正确,因为您正在尝试解析控制器中的视图

$data["account"] = $this->load->view('account'); //incorrect

正确的语法

$data["account"] = $this->load->view('account', $data, true);

再次传递价值......

我建议,你应该创建布局并使用子视图作为元素,你可以获得CI布局库layout library