2012-09-15 76 views
1

所有的好日子。我正在嘗試使用Codeigniter上的DATAMAPPER ORM(wan wizard)。示例應用程序正常工作。但是當我嘗試製作自己的模型和控制器時,它不起作用。我在教學中做了每一步。這裏是一個代碼:codeigniter上的datamapper orm不起作用

class Blog extends DataMapper { 

var $has_one = array(); 
var $has_many = array(); 
var $validation = array(
    'content' => array(
     // example is required, and cannot be more than 120 characters long. 
     'rules' => array('required', 'max_length' => 255), 
     'label' => 'Content' 
    ) 
); 
function __construct($id = NULL) 
{ 
    parent::__construct($id); 
} 

} 

我在db中創建表(一行稱爲內容的博客)。

這裏是一個控制器:

class Blog extends CI_Controller { 

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

    public function index() 
    { 
     $blog = new Blog; 
     $blog->content = "shaa"; 
     $blog->save(); 
     echo "done"; 
    } 

} 

但它總是給我一個錯誤:Fatal error: Call to undefined method Blog::save() in C:\xampp\htdocs\wanwizarddatamapper\application\controllers\blog.php on line 29

Uuhh它depresing我!你可以幫我嗎?謝謝

+0

是否有您需要使用數據映射器的原因?如果沒有,我會使用CodeIgniter活動記錄類的常規模型。 – seangates

回答

1

我相信你的模型和控制器之間有一個命名衝突。嘗試將您的模型重命名爲BlogEntry

class BlogEntry extends DataMapper { 

    var $has_one = array(); 
    var $has_many = array(); 
    var $validation = array(
    'content' => array(
     // example is required, and cannot be more than 120 characters long. 
     'rules' => array('required', 'max_length' => 255), 
     'label' => 'Content' 
    ) 
); 
    function __construct($id = NULL) 
    { 
    parent::__construct($id); 
    } 

} 

class Blog extends CI_Controller { 

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

    public function index() 
    { 
    $blogentry = new BlogEntry; 
    $blogentry->content = "shaa"; 
    $blogentry->save(); 
    echo "done"; 
    } 

}