0

我之间有多对多的关系ProfesionalPlan所以我编写了以下代码:

专业的.php

class Profesional extends BaseModel {

    static $table_name = 'profesionales';
    static $primary_key = 'idprofesional';

    static $has_many = array(
        array(
            '_planes',
            'class_name' => 'Plan',
            'through' => '_profplanes'
        ),      
        array(
            '_profplanes',
            'class_name' => 'ProfPlan',
            'foreign_key' => 'profesional'
        )
    );
}

profplan.php

class ProfPlan extends BaseModel{

    static $table_name = 'profplanes';
    static $belongs_to = array(
        array(
            '_plan',
            'class_name' => 'Plan',
            'foreign_key' => 'plan'
        ),
        array(
            '_profesional',
            'class_name' => 'Profesional',
            'foreign_key' => 'profesional'
        )
    );

}

计划.php

class Plan extends BaseModel {

    static $table_name = 'planes';
    static $primary_key = 'idplan';
    static $has_many = array(
        array(
            '_profplanes',
            'class_name' => 'ProfPlan',
            'foreign_key' => 'plan'
        )
    );
}

但我明白了Class Profplane does not exist。错误在哪里?我究竟做错了什么?

4

1 回答 1

0

修复类/表拼写!在你的代码早期修复它很容易,然后在 =P 之后成为维护的噩梦!“计划->计划''专业=>专业',”专业->“专业”。

老实说,phpactiverecord 中的直通关系代码很烦人,变化无常,并且确实需要总体上查看。

你应该展示你实际上是如何调用代码的,但我会假设你正在做

Professional::find(1)
$professional->_plans, //Error is thrown here

您需要设置您的代码,以便ProfPlan->_plans(或_planes在您的情况下)定义,而不仅仅是ProfPlan->_plan. Phpactiverecord 需要明确知道它将经历的关系。如果您需要更清楚的解释,请告诉我。

于 2013-05-28T15:59:38.863 回答