可容纳的行为仅在本地时才起作用

时间:2015-01-26 15:11:22

标签: php cakephp cakephp-2.0 cakephp-2.5

我有一个非常奇怪的问题。我在我的本地计算机上使用XAMPP,一切都很完美。但是当我将其上传到我的服务器时,突然ContainableBehavior停止识别关联。

Cake的版本:2.5.6

这是XAMPP的phpinfo()http://pastebin.com/DeZWMh42

这是我的服务器phpinfo()http://pastebin.com/rtZ0kTAM

两个地点都有完全相同的文件和数据库。

这是我得到的错误:

  

警告(512):模型“Certificado”与模型无关   “Usuario”[核心/蛋糕/模型/行为/ ContainableBehavior.php,第342行]

     

警告(512):模型“Certificado”与模型无关   “Alumno”[CORE / Cake / Model / Behavior / ContainableBehavior.php,第342行]

     

警告(512):模型“Certificado”与模型无关   “Usuario”[核心/蛋糕/模型/行为/ ContainableBehavior.php,第342行]

     

警告(512):模型“Certificado”与模型无关   “Alumno”[CORE / Cake / Model / Behavior / ContainableBehavior.php,第342行]

基本上,Impresion属于Usuario和Certificado,后者也属于Usuario(可能是不同的)和Alumno。显然我删掉了所有不相关的部分(如果你需要更多,请告诉我。)

这是我使用ContainableBehaviorImpresion的{​​{1}})的地方:
(我在Controller

上收到错误
/impresions/index

在视图中我只使用class ImpresionsController extends AppController { public $components = array('Paginator'); public $uses = array('Usuario', 'Alumno', 'Certificado', 'Impresion'); public function index(){ $this->paginate = array( 'limit' => 10, 'order' => array('fecha_creacion' => 'desc'), 'contain'=>array( 'Usuario', 'Certificado' => array( 'Usuario', 'Alumno' ) ), ); $results = $this->paginate('Impresion'); $this->set('impresiones',$results); } }

Impresion的模型:

foreach($impresiones)

Usuario的模型:

class Impresion extends AppModel {
    public $actsAs = array('Containable');
    public $belongsTo = array(
            'Certificado' => array(
                'className' => 'certificado',
                'foreignKey' => 'certificado_id',
            ),
            'Usuario' => array(
                'className' => 'Usuario',
                'foreignKey' => 'usuario_id',
                'fields' => array('nombre','codigo')
            ),
        );
}

Certificado的模型:

class Usuario extends AppModel {
    public $hasMany = array('Certificado','Impresion');
    public $actsAs = array('Containable');
}

Alumno的模特:

class Certificado extends AppModel {
    public $actsAs = array('Containable');
    public $belongsTo = array(
        'Usuario' => array(
            'className' => 'Usuario',
            'foreignKey' => 'usuario_id',
        ),
        'Alumno' => array(
            'className' => 'Alumno',
            'foreignKey' => 'alumno_id',
        )
    );
    public $hasMany = 'Impresion';
}

本地查询:http://pastebin.com/B5MRp3FS

服务器的查询:http://pastebin.com/J2H4U6Ge

我完全迷失在这里。为什么它在我的计算机上运行得很好,但在服务器上中断?其他一切都有效,只有class Alumno extends AppModel { public $actsAs = array('Containable'); public $hasMany = 'Certificado'; } 才有问题。

1 个答案:

答案 0 :(得分:1)

我无法相信。

无视一切。

此:

'className' => 'certificado',

应该是这样的:

'className' => 'Certificado',

抱歉浪费你的时间,我是个白痴