1

全てにおいて良い日。CodeigniterでDATAMAPPERORM(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(contentという1行のブログ)にテーブルを作成しました。

そしてここにコントローラーがあります:

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 に答える