1

祝大家有美好的一天。我正在 Codeigniter 上尝试 DATAMAPPER ORM(wan 向导)。示例应用程序工作正常。但是当我尝试制作自己的模型和控制器时,它不起作用。我按照说明做了每一步。这是一个代码:

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

呃,这让我很沮丧!你能帮助我吗?谢谢

4

1 回答 1

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";
  }

}
于 2012-10-11T15:47:15.327 回答