“未定义的属性” CodeIgniter代码错误 [英] "Undefined property" error in CodeIgniter code

查看:228
本文介绍了“未定义的属性” CodeIgniter代码错误的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我正在关注Codeigniter的TutsPlus构建CMS教程。它包括以下代码:

I am following a TutsPlus "Build a CMS" tutorial for Codeigniter. It includes this bit of code:

if (!count($this->db->ar_orderby)) {
    $this->db->order_by($this->_order_by);
}

此消息的结果:


未定义属性:CI_DB_mysqli_driver :: $ ar_orderby。

文件名:core / MY_Model.php

行号:29

Undefined property: CI_DB_mysqli_driver::$ar_orderby.
Filename: core/MY_Model.php
Line Number: 29

如何解决此错误?

这是<$ c $中的代码c> MY_Model.php :

<?php
class MY_Model extends CI_Model {
    protected $_table_name = '';
    protected $_primary_key = 'id';
    protected $_primary_filter = 'intval';
    protected $_order_by = '';
    public $rules = array();
    protected $_timestamps = FALSE;

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

    public function get($id = NULL, $single = FALSE){
        if ($id != NULL) {
            $filter = $this->_primary_filter;
            $id = $filter($id);
            $this->db->where($this->_primary_key, $id);
            $method = 'row';
        }
        elseif($single == TRUE) {
            $method = 'row';
        }
        else {
            $method = 'result';
        }

        if (!count($this->db->ar_orderby)) {
            $this->db->order_by($this->_order_by);
        }
        return $this->db->get($this->_table_name)->$method();
    }

    public function get_by($where, $single = FALSE){
        $this->db->where($where);
        return $this->get(NULL, $single);
    }

    public function save($data, $id = NULL){
        // Set timestamps
        if ($this->_timestamps == TRUE) {
            $now = date('Y-m-d H:i:s');
            $id || $data['created'] = $now;
            $data['modified'] = $now;
        }

        // Insert
        if ($id === NULL) {
            !isset($data[$this->_primary_key]) || $data[$this->_primary_key] = NULL;
            $this->db->set($data);
            $this->db->insert($this->_table_name);
            $id = $this->db->insert_id();
        }
        // Update
        else {
            $filter = $this->_primary_filter;
            $id = $filter($id);
            $this->db->set($data);
            $this->db->where($this->_primary_key, $id);
            $this->db->update($this->_table_name);
        }

        return $id;
    }

    public function delete($id){
        $filter = $this->_primary_filter;
        $id = $filter($id); 

        if (!$id) {
            return FALSE;
        }
        $this->db->where($this->_primary_key, $id);
        $this->db->limit(1);
        $this->db->delete($this->_table_name);
    }
}


推荐答案

如果您正在使用Code Ignitor 3.x,则可以替换以下行:

if you are using Code Ignitor 3.x then you can replace these lines:

if (!count($this->db->ar_orderby)) {
    $this->db->order_by($this->_order_by);
}

具有:

if(!count($this->db->order_by($this->_order_by))) {
    $this->db->order_by($this->_order_by);
}

这篇关于“未定义的属性” CodeIgniter代码错误的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆