我有一个非常奇怪的问题。我在我的本地计算机上使用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。显然我删掉了所有不相关的部分(如果你需要更多,请告诉我。)
这是我使用ContainableBehavior
(Impresion
的{{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';
}
才有问题。
答案 0 :(得分:1)
我无法相信。
无视一切。
此:
'className' => 'certificado',
应该是这样的:
'className' => 'Certificado',
抱歉浪费你的时间,我是个白痴