RedBean ORM и Codeigniter, как сделать Fuse распознавать модели, загруженные из пути к моделям по умолчанию CI?

Codeigniter имеет собственный путь к моделям, где модели расширяются от CI_Model. Я использую RedBean, есть библиотека в Codeigniter, загружающая ее на контроллер. После загрузки Rb я пытаюсь использовать CI Loader для загрузки модели, которая расширяет redbean_simplemodel (желание работает, ошибок нет), но события / методы внутри модели не действуют, когда они вызываются на bean.

Например, , APPPATH / application / libraries / rb.php

class Rb {

    function __construct()
    {
        // Include database configuration
        include(APPPATH.'/config/database.php');

        // Get Redbean
        include(APPPATH.'/third_party/rb/rb.php');

        // Database data
        $host = $db[$active_group]['hostname'];
        $user = $db[$active_group]['username'];
        $pass = $db[$active_group]['password'];
        $db   = $db[$active_group]['database'];

        // Setup DB connection
        R::setup("mysql:host=$host;dbname=$db", $user, $pass);

    } //end __contruct()


} //end Rb

А затем APPPATH / application / models / model_song.php

class Model_song extends RedBean_SimpleModel {

 public function store() {
  if ( $this->title != 'test' ) {
  throw new Exception("Illegal title, not equal «test»!");
  }
 }

}

при включенном APPPATH / приложение / контроллеры / добро пожаловать.php

class Welcome extends CI_Controller {

    public function index()
    {
        $this->load->library('rb');
        $this->load->model('model_song');

        $song = R::dispense('song');
        $song->title  = 'bluuuh';
        $song->track = 4;
        $id = R::store($song);
        echo $id;

    }
}

У меня вопрос, как заставить RedBean (FUSE http://redbeanphp.com/#/Fuse ) работать на Codeigniter?

Спасибо за внимание!

---- - НАЙДЕНО РЕШЕНИЕ!

Собственно, работает! Я пытался разместить код под своей моделью, метод store (). Это не сработает! Я попытался разместить новый метод под названием update (), и он действительно работает! Посмотрите на пример ниже:

class Model_song extends RedBean_SimpleModel {

 public function update() {
  if ( $this->title != 'test' ) {
    throw new Exception("Illegal title!");
  }
 }

}

Решение следующее:

«Предполагается, что вы уже установили RedBean на Codeigniter»

1) Загрузите библиотеку для «redbean» 2) Используя ci_loader, загрузите желаемую модель (модель должна расширять redbean_simplemodel)

Спасибо за внимание! Надеюсь, это поможет и другим людям.

16
задан punkbit 23 June 2011 в 17:33
поделиться