CakePHP: Pouvez-vous interroger la base de données à partir d'une classe d'aide?
-
26-09-2019 - |
Question
Salut juste besoin de savoir si vous pouvez interroger la base de données à l'intérieur d'une classe d'aide, si vous devez et comment vous le faites.
Merci
La solution
Vous pouvez, en passant une référence au modèle dans la vue comme une variable via $ this-> set (), puis l'interrogation ... mais vous ne devriez pas. Il est salissant; -)
CakePHP utilise le modèle MVC, et les aides font partie de la vue (V de MVC) -. Leur travail est purement pour afficher le (déjà) les informations transmises à ce contrôleur du
Si votre point de vue a besoin d'informations supplémentaires, votre contrôleur aurait déjà interrogé les modèles pour l'obtenir.
Je vous suggère de lire sur le modèle MVC si vous n'êtes pas familier avec elle, alors refactoring pourrait être dans l'ordre!
Autres conseils
Oui. Vous pouvez interroger la base de données à partir de votre fichier d'aide. S'il vous plaît vérifier: -
class YourHelperNameHelper extends AppHelper {
function queryDbFromHelper()
{
// Load your model here
App::import('Model','ModelName');
$this->ModelName = new ModelName();
//now you can use find method or another method to query DB.
return $this->ModelName->find('all');
}
}
// Include this helper in controller
var $helpers = array('YourHelperName');
// call this function in helper file.
$this->YourHelperName->queryDbFromHelper();