【问题标题】:Parsing model query results and controller public variable from controller to view with codeigniter使用codeigniter从控制器解析模型查询结果和控制器公共变量以查看
【发布时间】:2015-10-10 22:37:39
【问题描述】:

这样可以从控制器发送数据吗?

控制器测试.php

<?php if ( ! defined('BASEPATH')) exit('No direct script access allowed');

    class Test extends CI_Controller {

        public $data = array(
            'modul'         => 'user',
            'title_meta'    => 'User',
            'breadcrumb'    => 'User',
            'pesan'         => '',
            'pagination'    => '',
            'main_view'     => 'administrator/user',
            'form_action'   => '',
            'form_value'    => '',
        );

        public function __construct()
        {
            parent::__construct();      
            $this->load->model('test_model', 'test', TRUE);
        }

        public function index()
        {
            $data['query'] = $this->test->get_all();
            $this->load->view('test',$data);
        }

    }

模型 test_model.php

<?php if (!defined('BASEPATH')) exit('No direct script access allowed');

class Test_model extends CI_Model {

    function get_all() {
        $query = $this->db->get('snb_user');
        return $query->result_array();
    }
}

查看test.php

<?php
foreach($query as $row)
{
    echo $row['UserID'];
    echo $row['UserName'];
    echo $row['UserEmail'];
}

echo $breadcrumb;
?>

当我运行这个时,我得到这个错误:

遇到了 PHP 错误

严重性:通知

消息:试图获取非对象的属性

文件名:views/test.php

行号:4 遇到 PHP 错误

严重性:通知

消息:试图获取非对象的属性

文件名:views/test.php

行号:4 遇到 PHP 错误

严重性:通知

消息:试图获取非对象的属性

文件名:views/test.php

行号:4 遇到 PHP 错误

严重性:通知

消息:试图获取非对象的属性

文件名:views/test.php

行号:4 遇到 PHP 错误

严重性:通知

消息:未定义变量:面包屑

文件名:views/test.php

行号:7

我想解析控制器上变量$data中的数据和模型中sql查询的结果,可以吗? 任何帮助都会很棒,谢谢!

【问题讨论】:

  • 检查结果集的 num_rows() 而不是 $data user $this->data $this->data['query'] = $this->test->get_all();
  • 我这样做了return $query-&gt;num_rows(); 结果是 4,查看 test.php echo $breadcrumb; echo $query; ,但仍然得到这个:遇到 PHP 错误 严重性:通知消息:未定义变量:面包屑文件名:views/test.php 行号:2
  • 使用 $this->load->view('test',$this->data);
  • 我试过$this-&gt;load-&gt;view('test',$this-&gt;data);,$breadcrumb 变量成功显示,但 sql 结果不会显示。我收到此错误 Message: Undefined variable: queryMessage: Invalid argument provided for foreach()

标签: php codeigniter model-view-controller


【解决方案1】:

您尚未在视图文件或控制器中声明名为$breadcrumb 的变量。如果您想删除此通知,则应在使用$breadcrumb 变量之前声明变量或使用isset()empty() 方法。

【讨论】:

  • $data = array('breadcrumb' => 'User'); $breadcrumb 已定义。!
  • 你必须像这样使用$this-&gt;data = array( 'breadcrumb' =&gt; 'User');,因为你写的像$this-&gt;load-&gt;view('test',$this-&gt;data);,所以现在数据是成员变量而不是本地变量。
  • 我试过 $this-&gt;data = array( 'breadcrumb' =&gt; 'User');,但收到错误 解析错误:语法错误,意外 '->' (T_OBJECT_OPERATOR),期待 ',' 或 ';'在第 5 行的 C:\xampp\htdocs\sanabudotcom\apps\controllers\test.php 中
  • 能不能把你的函数代码贴在这里,让我清楚的看懂是什么,有什么问题?
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2016-07-06
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-05-30
相关资源
最近更新 更多