Codeigniter ORM无法创建关系

时间:2013-12-11 16:19:32

标签: php codeigniter codeigniter-datamapper

尝试在两个表之间建立简单的多重关系。

不幸的是,Codeigniter一直在说:

  

“无法找到您指定的模型:eventtrigger”。

代码如下:

class Task extends DataMapper
{
    public $has_one = array('employee',
                            'eventtrigger' => array('class' => 'employee'));

    […]
}

我知道,这是非常少的信息。

但我希望这个结构有一个已知的问题。

问候: maak

1 个答案:

答案 0 :(得分:0)

您还需要定义关系的other_field属性,还需要在Employee模型中定义反向关系:

class Task extends DataMapper
{
    public $has_one = array(
        'owner' => array(
            'class' => 'employee',
            'other_field' => 'owned_task'
        ),
        'trigger' => array(
            'class' => 'employee',
            'other_field' => 'triggered_task'
        )
    );
}

在员工模型中:

class Employee extends DataMapper {
    $has_many = array(
        'owned_task' => array(
            'class' => 'task',
            'other_field' => 'owner'
        ),
        'triggered_task' => array(
            'class' => 'post',
            'other_field' => 'trigger'
        )
    );
}

有关详情:http://datamapper.wanwizard.eu/pages/advancedrelations.html

不幸的是,正如@bmorenate所提到的,DataMapper不再受到支持了。