Php 编码点火器HMVC+数据映射器

Php 编码点火器HMVC+数据映射器,php,codeigniter,hmvc,codeigniter-datamapper,Php,Codeigniter,Hmvc,Codeigniter Datamapper,当我将datamapper与codegniter和HMVC模块一起使用时,我面临一个问题。 MX_控制器不起作用。。c 我采取了以下步骤: 我创建了两个模块 相册(U型): <?php class albums_model extends DataMapper { var $has_many = array('photos_model'); public $table = 'albums'; } ?> 照片和模型: <?php class photos_m

当我将datamapper与codegniter和HMVC模块一起使用时,我面临一个问题。 MX_控制器不起作用。。c

我采取了以下步骤: 我创建了两个模块

相册(U型):

<?php
class albums_model extends DataMapper {

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

}
?>
照片和模型:

<?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的$alloy\u to选项?

这两行代码是多余的

$p=new photos_model();
$p= $this->photos_model->get();
根据此处给出的示例:

我相信你会想做:

$p->get();

代替第二行

请不要将模式与CodeIgniter的ORM混淆,后者名为Datamapper ORM。它实现模式。此外,请停止将ative记录的实例作为模型引用。模型是一个层,而不是一个类或对象,这也是为什么您所描述的内容与MVC没有任何关系?我上面所说的问题出在哪里?kayladnls它不起作用。。请注意,我使用的是MX_控制器!这些模型存放在哪里?应用程序-控制器型号-此处?查看模块名称-控制器型号-或此处?我想您已经验证了数据库中的数据是否正确?你能通过一个普通的非数据映射器查询来获取数据吗?是的,我能通过一个普通的查询来选择数据。我使用的是HMVC架构。模块|-ztest1 |-controller/c1.php |-model/c1|u model.php |-view/index.php |-ztest2 |-controller/c2.php