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)
Спасибо, что посмотрели! Надеюсь, это поможет и другим людям.