可包容行为仅在本地有效
Containable behavior only working when local
我遇到了一个非常奇怪的问题。我在本地计算机上使用 XAMPP,一切正常。但是当我将它上传到我的服务器时,突然 ContainableBehavior
停止识别关联。
蛋糕版本:2.5.6
这是 XAMPP 的 phpinfo()
:http://pastebin.com/DeZWMh42
这是我服务器的 phpinfo()
:http://pastebin.com/rtZ0kTAM
两个位置都有完全相同的文件和数据库。
这是我遇到的错误:
Warning (512): Model "Certificado" is not associated with model
"Usuario" [CORE/Cake/Model/Behavior/ContainableBehavior.php, line 342]
Warning (512): Model "Certificado" is not associated with model
"Alumno" [CORE/Cake/Model/Behavior/ContainableBehavior.php, line 342]
Warning (512): Model "Certificado" is not associated with model
"Usuario" [CORE/Cake/Model/Behavior/ContainableBehavior.php, line 342]
Warning (512): Model "Certificado" is not associated with model
"Alumno" [CORE/Cake/Model/Behavior/ContainableBehavior.php, line 342]
基本上,印象属于Usuario和Certificado,后者也属于Usuario(可能是不同的)和Alumno。显然我删掉了所有不相关的部分(如果您需要更多,请告诉我。)
这是我使用 ContainableBehavior
(Impresion
的 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);
}
}
在视图中我只使用 foreach($impresiones)
。
印象模型:
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')
),
);
}
Usuario 的模型:
class Usuario extends AppModel {
public $hasMany = array('Certificado','Impresion');
public $actsAs = array('Containable');
}
Certificado 的模型:
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';
}
校友模特:
class Alumno extends AppModel {
public $actsAs = array('Containable');
public $hasMany = 'Certificado';
}
本地查询:http://pastebin.com/B5MRp3FS
服务器查询:http://pastebin.com/J2H4U6Ge
我完全迷失在这里。为什么它在我的电脑上运行得很好,但在服务器上就坏了?其他一切正常,只是 ContainableBehavior
有问题。
简直不敢相信
无视一切
这个:
'className' => 'certificado',
应该是这样的:
'className' => 'Certificado',
抱歉浪费你的时间,我是个白痴
我遇到了一个非常奇怪的问题。我在本地计算机上使用 XAMPP,一切正常。但是当我将它上传到我的服务器时,突然 ContainableBehavior
停止识别关联。
蛋糕版本:2.5.6
这是 XAMPP 的 phpinfo()
:http://pastebin.com/DeZWMh42
这是我服务器的 phpinfo()
:http://pastebin.com/rtZ0kTAM
两个位置都有完全相同的文件和数据库。
这是我遇到的错误:
Warning (512): Model "Certificado" is not associated with model "Usuario" [CORE/Cake/Model/Behavior/ContainableBehavior.php, line 342]
Warning (512): Model "Certificado" is not associated with model "Alumno" [CORE/Cake/Model/Behavior/ContainableBehavior.php, line 342]
Warning (512): Model "Certificado" is not associated with model "Usuario" [CORE/Cake/Model/Behavior/ContainableBehavior.php, line 342]
Warning (512): Model "Certificado" is not associated with model "Alumno" [CORE/Cake/Model/Behavior/ContainableBehavior.php, line 342]
基本上,印象属于Usuario和Certificado,后者也属于Usuario(可能是不同的)和Alumno。显然我删掉了所有不相关的部分(如果您需要更多,请告诉我。)
这是我使用 ContainableBehavior
(Impresion
的 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);
}
}
在视图中我只使用 foreach($impresiones)
。
印象模型:
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')
),
);
}
Usuario 的模型:
class Usuario extends AppModel {
public $hasMany = array('Certificado','Impresion');
public $actsAs = array('Containable');
}
Certificado 的模型:
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';
}
校友模特:
class Alumno extends AppModel {
public $actsAs = array('Containable');
public $hasMany = 'Certificado';
}
本地查询:http://pastebin.com/B5MRp3FS
服务器查询:http://pastebin.com/J2H4U6Ge
我完全迷失在这里。为什么它在我的电脑上运行得很好,但在服务器上就坏了?其他一切正常,只是 ContainableBehavior
有问题。
简直不敢相信
无视一切
这个:
'className' => 'certificado',
应该是这样的:
'className' => 'Certificado',
抱歉浪费你的时间,我是个白痴