2013-11-21 31 views
0

我對CRUD方法有錯誤。誰能幫幫我嗎。CodeIgniter:CRUD order_by錯誤

JS_Model.php

class JS_Model extends CI_Model 
{ 

    protected $_table_name = ''; 
    protected $_primary_key = 'id'; 
    protected $_primary_filter = 'intval'; 
    protected $_order_by = ''; 
    protected $_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); 
    } 

} 

page_m.php

class Page_m extends JS_Model 
{ 

    protected $_table_name = 'pages'; 
    protected $_primary_key = 'id'; 
    protected $_primary_filter = 'intval'; 
    protected $_order_by = 'order'; 
    protected $_rules = array(); 
    protected $_timestamps = FALSE; 

} 

page.php文件

class Page extends Frontend_Controller 
{ 


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

     $this->load->model('page_m'); 
    } 

    public function index() 
    { 

     $pages = $this->page_m->get(); 

     //var_dump($pages); 
     print_r($pages); 

    } 
} 

個錯誤消息如下

A PHP Error was encountered 

Severity: Notice 

Message: Undefined property: Page::$order_by 

Filename: core/Model.php 

Line Number: 51 

A Database Error Occurred 

Error Number: 1054 

Unknown column '' in 'order clause' 

SELECT * FROM (`pages`) ORDER BY ` 

Filename: C:\xampp\htdocs\my-cms\system\database\DB_driver.php 

Line Number: 330 
+1

試取代$ this-> db-> order_by($ this-> order_by); to $ this-> db-> order_by($ this - > _ order_by); –

+0

你是對的。很感謝。+1 –

回答

1

消息:未定義的屬性:頁面:: $ ORDER_BY

在這種情況下使用_order_by代替order_by這樣的:

$this->db->order_by($this->_order_by); 

未知列 '' '以條款'

這應該是這樣的:

SELECT * FROM (`pages`) ORDER BY `column_name`; //column_name was missing 
+0

感謝您的解釋。然而,只是想知道..設置後$ this - > _ order_by'其他錯誤也沒了..怎麼樣? –

1
$this->db->order_by($this->order_by); 

應該

$this->db->order_by($this->_order_by);