模型在Codeigniter中的视图之前加载

问题描述 投票:0回答:2

我在codeigniter pages.php中有一个控制器

class Pages extends CI_Controller {

    public function view($page = 'home')
    {
        $this->load->view('header');
        echo("<br>");
        $this->load->model("math");
        echo $this->math->add(1,2);
    }
}

模型:math.php

class math extends CI_Controller
{
    public function add($val1,$val2){
        return $val1+$val2;
    }
}

视图:header.php

<html>
<head>
    <title>fashion and style</title>
</head>
<body>
<?php
    echo("this is the header");
?>

根据控制器,代码应输出:

this is the header

number

但我得到的输出如下:

number this is the header

为什么?

php codeigniter view model
2个回答
2
投票

如果您将直接从codeigniter控制器回显字符串,它将在呈现加载的视图之前呈现字符串。如果你想这样做,你可以尝试 -

$str = $this->math->add(1,2);
$this->output->append_output($str);

然后你的控制器看起来像 -

class Pages extends CI_Controller {

    public function view($page = 'home')
    {
        $this->load->view('header');
        $this->load->model("math");
        $str = "<br>".$this->math->add(1,2);
        $this->output->append_output($str);
    }
}

希望这会有所帮助。


0
投票

试试这个:

控制器:

class Pages extends CI_Controller {

    public function view($page = 'home')
    {
        $this->load->model("math_model");
        $data['number'] = $this->math_model->add(1,2);

        $this->load->view('header',$data);

    }
}

模型math_model.php

模型:

class Math_model extends CI_Model
{
    public function add($val1,$val2){
        return $val1+$val2;
    }
}

视图header.php

<html>
<head>
    <title>fashion and style</title>
</head>
<body>
<?php
    echo("this is the header");
?>
echo("<br>");
<?php 
        echo $number;
?>
</body>
</html>

有关模型的详细信息,请查看https://www.codeigniter.com/user_guide/general/models.html

有关视图,请查看https://www.codeigniter.com/user_guide/general/views.html

© www.soinside.com 2019 - 2024. All rights reserved.