2013-11-27 2 views
1

У меня возникла проблема, когда я использую datamapper с модулем codegniter и HMVC. Оно не работать MX_CONTROLLER .. сCodeigniter HMVC + datamapper

Я следовал за эти шаги: http://stensi.com/datamapper/pages/installation.html я создал два модуля.

Albums_model:

<?php 
class albums_model extends DataMapper { 

    var $has_many = array('photos_model'); 
    public $table = 'albums'; 

} 
?> 

И photos_model:

<?php 
class photos_model extends DataMapper { 

    public $table = 'photos'; 
    public $validation= array(
    array(
     'field' => 'title', 
     'label' => 'Title', 
     'rules'=>array('required') 
    ) 
); 
?> 

Фотографии контроллер:

<?php 
class Photos extends MX_Controller 
{ 
    public function __construct() 
    { 
     parent::__construct(); 
     $this->load->model('photos_model'); 
    } 

    function index() 
    { 
     $p=new photos_model(); 
     $p= $this->photos_model->get(); 
     print_r($p); 
    } 
} 
?> 

Где проблема? Может кто-нибудь мне помочь?

Кстати, есть ли $belong_to вариант, похожий на cakephp?

+1

Не смущайте шаблон [data mapper] (http://martinfowler.com/eaaCatalog/dataMapper.html) с ORM CodeIgniter, который называется именем «Datamapper ORM». Он реализует шаблон [active record] (http://martinfowler.com/eaaCatalog/activeRecord.html). Кроме того, прекратите ссылаться на экземпляры активной записи как «модели». Модель - это слой, а не класс или объект (это также почему то, что вы описываете, даже не отдаленно связано с MVC). –

+0

Дорогой tereško, Я не понял? где проблема с тем, что я описал выше? – Danny

ответ

0

Эти две строки кода являются избыточными.

$p=new photos_model(); 
$p= $this->photos_model->get(); 

На основании приведенных примеров здесь: http://stensi.com/datamapper/pages/gettingstarted.html

Я считаю, что вы хотите сделать:

$p->get(); 

Вместо этой второй линии.

+0

kayladnls это не сработало. обратите внимание, что я использую MX_CONTROLLER! – Danny

+0

Где хранятся эти модели? 'Применение --Контроллеры Модели -HERE? Просмотров Имя Модули Модуль --Controllers Модели - или ЗДЕСЬ ' Я полагаю, вы убедились, что у вас есть правильные данные в базе данных? Можете ли вы получить эти данные через обычный (не Datamapper запрос)? – greydnls

+0

Да, я могу выбрать данные с обычным запросом. Я использую архитектуру HMVC. модули | --ztest1 | --controller/c1.php | --model/c1_model.php | --view/index.php | --ztest2 | --controller/c2.php – Danny