Salut,
J'ai pensé à une fonction flexible pour la recherche sur tout les modèles, et je bug sur cette fonction pour l'utilisé au contrôleurs comme $component.
ce code je l'ai trouvé dans Gist de Github:
[code]
function getConditions(){
$conditions = array();
$data= empty($this->controller->params['named']) ? $this->controller->params['url'] : $this->controller->params['named'] ;
$this->controller->{$this->controller->modelClass}->schema();
foreach($data as $key=>$value){
if(isset($this->controller->{$this->controller->modelClass}->_schema[$key]) && !empty($value)){
switch($this->controller->{$this->controller->modelClass}->_schema[$key]['type']){
case "string":
$conditions[$this->controller->modelClass . "." .$key . " LIKE"] = "%".trim($value)."%";
break;
case "integer":
$conditions[$this->controller->modelClass . "." .$key] = $value;
break;
case "date":
if(isset($this->controller->params['named'][$key."_fromdate"])){
$from = date("Y-m-d", strtotime( $this->controller->params['named'][$key."_fromdate"] ));
$conditions[$this->controller->modelClass.".".$key." >="] = trim($from);
}
if(isset($this->controller->params['named'][$key."_todate"])){
$to = date("Y-m-d", strtotime($this->params['named'][$key."_todate"]));
$conditions[$this->controller->modelClass.".".$key." <="] = $to;
}
}
}
}
return $conditions;
}
[/code]
J'ai pensé aussi à intégrer ce code au modèles spécifiques car au moment ou les gens commence à taper leur mot clé, des requêtes énormes seront lancer et le site crash!!! Je parle bien d'un projet énorme qui récolte beaucoup d'informations et non pas pour les sites type "blogs".