2013-11-27 79 views
1

我在使用codegniter和HMVC模块使用datamapper时遇到了一个问题。 它没有工作了MX_CONTROLLER。CCodeigniter HMVC + datamapper

我按照下列步骤操作:http://stensi.com/datamapper/pages/installation.html 我已经创建了两个模块。

Albums_model:

​​

而且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); 
    } 
} 
?> 

问题出在哪里?谁能帮我?

顺便说一下,有没有类似于cakephp的$belong_to选项?

+1

请不要混淆[数据映射器](http://martinfowler.com/eaaCatalog/dataMapper.html)模式与CodeIgniter的ORM,名称为“Datamapper ORM”。它实现[活动记录](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 模型 - OR这里' 我想你已经证明你有正确的数据在你的数据库?您是否能够通过正常的(非Datamapper查询)获取该数据? – greydnls

+0

是的,我可以选择正常查询的数据。 我正在使用HMVC体系结构。 模块 | --ztest1 | --controller/c1.php | --model/c1_model.php | --view/index.php的 | --ztest2 | --controller/c2.php – Danny