Quick links: Content - sections - sub sections
EN FR
Quick Search Advanced search
 
Page

  [Opened] Modification de jControllerDaoCrud

Posted by lipki on 02/20/2008 14:29

Dans jControllerDaoCrud

 $rep = $this->_getResponse();

est appeler après la création du formulaire dans l'actions editupdate.

Il ce trouve que dans ma classe qui étend jControllerDaoCrud, le formulaire n'est pas prédéfini. Je pensez le définir dans _getResponse, mais je ne peut pas.

Et'il génant de déplacer le _getResponse avant l'appel du formulaire dans editupdate.

 function editupdate(){
 	$id = $this->param('id');
		
 	$rep = $this->_getResponse();
		
 	$form = jForms::get($this->form, $id);
 	if( $form === null || $id === null){
 		$rep = $this->getResponse('redirect');
 		$rep->action = $this->_getAction('index');
 		return $rep;
 	}

  [Opened] Re: Modification de jControllerDaoCrud

Reply #1 Posted by lipki on 02/20/2008 15:34

Comme le fait de modifier une classe native de jelix me gêner.

Je mes suis dit, qu'a cela ne tienne, je n'ai cas surcharger chaque action, pour définir le formulaire avant de faire quoique ce soit.

ce qui donne

 function index() {
 	$this->formDefine();
 	parent::index();
 }
 
 protected function formDefine(){
 	// on vérifie qu'il y a bien un formulaire en paramétre
 	if( $this->param('form') == null )
 		throw new jException('cruds~errors.invalid.form');
 
 	$this->form = 'cruds~'.$this->param('form');
 }

cela me parait parfaitement simple, mais pourtant il me sort cette erreur :

 [error 132] Réponse non spécifiée (action cruds~default:index@classic)

mais j'ai vérifié, la méthode index renvoie bien une réponse.

EDIT -----------------------------------

ok c'est de ma faute, j'ai oublier un return

 function index() {
 	$this->formDefine();
 	return parent::index();
 }

  [Opened] Re: Modification de jControllerDaoCrud

Reply #2 Posted by lipki on 02/20/2008 17:57

Je l'ai fait par surcharge et pour l'instant je n'ai pas de problème, j'obtiens bien ce que je veut.

Un contrôleur CRUD qui gère n'importe quel table, qu'on lui passe en paramètre.

 <a href="{jurl 'cruds~index', array('table'=>'di_adresses')}">Adresses</a>
 <a href="{jurl 'cruds~index', array('table'=>'di_utilisateurs')}">Utilisateurs</a>

Le s a la fin de cruds, sait pour Search, je vais essayer d'ajouter un outil de recherche dans la table, sur tous les critères du formulaire.

 
Page
  1. Modification de jControllerDaoCrud