Подтвердить что ты не робот

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

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

Например, AppPath/приложения/библиотеки/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/приложение/модели/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/приложение/контроллеры/welcome.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)

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

4b9b3361

Ответ 1

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

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

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