【问题标题】:codeigniter not getting values from controller to viewcodeigniter 没有从控制器获取值来查看
【发布时间】:2015-08-28 19:48:57
【问题描述】:

我有以下controllers, models & views 结构。

控制器 > (content.php)

class Content extends CI_Controller {

    public function __construct(){
        parent::__construct();
    }

    public function index() {
        $this->load->view("global_header");
        $this->load->model("ContentModel");
        $data['result'] = $this->ContentModel->blogPostContents();
        $this->load->view("content_page", $data);
        $this->load->view("global_footer");
    }
}

模型 > (ContentModel.php)

class ContentModel extends CI_Model {

    public function blogPostContents() {
        $url_segment = $this->uri->segment(1); // Get post title

        $this->db->select('*');
        $this->db->from('blog_posts');
        $this->db->where("url", $url_segment);
        $query = $this->db->get();
        $query->result();
        $this->db->last_query();
        return $query->result();

    }

}

浏览量 > (content_page.php)

<article>
    <div class="container">
        <div class="row">
            <div class="col-lg-8 col-lg-offset-2 col-md-10 col-md-offset-1">
                <?php
                    echo $result[0]->post;
                ?>
            </div>
        </div>
    </div>
</article>

现在我在我的控制器文件content.php中创建了另一个函数:

public function show() {            
    $data['title'] = "Hello";
    $data['body'] = "World";
    $this->load->view('content_page', $data);
}

现在,当我尝试在 content_page 文件中回显 $title &amp; $body 变量时,我得到的变量是未定义的。知道我做错了什么吗?

错误列表:

A PHP Error was encountered

Severity: Notice

Message: Undefined variable: title

Filename: views/content_page.php

Line Number: 5
A PHP Error was encountered

Severity: Notice

Message: Undefined variable: body

Filename: views/content_page.php

Line Number: 6

所以我想知道如何显示变量值来查看。

谢谢。

【问题讨论】:

  • 您能否澄清一下:blogPostContents() 工作正常,但 show() 返回错误?
  • var_dump($result) 看看你有什么结构。
  • @GluePear 是的 blogPostContents() 工作正常,但 show() 返回错误。我在我的问题上添加了错误。
  • @Tpojka var_dump($result)show() 函数中?
  • 你点击了什么网址???

标签: php codeigniter model-view-controller codeigniter-2


【解决方案1】:

在控制器索引()中尝试添加这一行:

class Content extends CI_Controller {

public function __construct(){
    parent::__construct();
}

public function index() {
    $this->load->view("global_header");
    $this->load->model("ContentModel");
    $data['result'] = $this->ContentModel->blogPostContents();
    //$this->load->view("content_page", $data);
    $this->show($data);
    $this->load->view("global_footer");
}

}

在显示方法或函数中

public function show($data) {            
    $data['title'] = "Hello";
    $data['body'] = "World";
    $this->load->view('content_page', $data);
}

希望一切顺利

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2022-08-14
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多