Reputation: 21
I'm having a very strange issue. I'm working with XAMPP on my local computer, and everything works perfect. But when I upload it to my server, suddenly ContainableBehavior
stops recognizing associations.
Cake's version: 2.5.6
Here's XAMPP's phpinfo()
: http://pastebin.com/DeZWMh42
And here's my server's phpinfo()
: http://pastebin.com/rtZ0kTAM
Both locations have the exact same files and databases.
This is the error(s) I'm getting:
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]
Basically, an Impresion belongs to an Usuario and to a Certificado, the latter also belongs to an Usuario (may be a different one) and to an Alumno. Obviously I cut out all the irrelevant parts (let me know if you need more.)
This is where I'm using ContainableBehavior
(Impresion
's Controller
):
(I'm getting the error on /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);
}
}
And in the view I just use a foreach($impresiones)
.
Impresion's Model:
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's Model:
class Usuario extends AppModel {
public $hasMany = array('Certificado','Impresion');
public $actsAs = array('Containable');
}
Certificado's Model:
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';
}
Alumno's Model:
class Alumno extends AppModel {
public $actsAs = array('Containable');
public $hasMany = 'Certificado';
}
Local query: http://pastebin.com/B5MRp3FS
Server's query: http://pastebin.com/J2H4U6Ge
I'm completely lost here. Why does it work perfectly fine on my computer, but breaks on the server? Everything else works, it's just ContainableBehavior
that's having problems.
Upvotes: 1
Views: 304
Reputation: 21
I can't believe it.
Disregard everything.
This:
'className' => 'certificado',
Should've been this:
'className' => 'Certificado',
Sorry for wasting your time, I'm an idiot
Upvotes: 1