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

  [Opened] Call to a member function check() on a non-object

Posted by vigier on 10/26/2012 21:54

Bonjour tout le monde,

Je suis en face d'un de ces nombreux mements de olitude dont sont victime les développeur. Une imconpréhension totale. Souvent dans ces cas là un regard exterieur est le benvenue.

Donc j'ai l'erreur annoncé dans le suejt de ce topik après soumissiosn d'un formulaire. Je vous soumets donc l'ensemble de mes fonctions et templates en ésperant une solutions.

Merci d'avance à vous tous.

 function editHotel() {

        $hotelId = $this->param('hotelId');
        jForms::clean('hotelsform');
        $form = jForms::create('hotelsform', $hotelId);
        $form->initFromDao('hotels');

        jMessage::clear('msgNoticeContact');

        $rep = $this->getResponse('redirect');
        $rep->params = array('hotelId' => $hotelId);
        $rep->action = 'default:showFormHotel';

        return $rep;
    }

    function showFormHotel() {

        $hotelId = $this->param('hotelId');

        $formSel = 'hotelsform';
        $form = jForms::get($formSel);
        if($form == null) {
            $form = jForms::create('hotelsform', $hotelId);
            $form->initFromDao('hotels');
        }

        $tpl = new jTpl();
        $tpl->assign('form', $form);

        $rep = $this->getResponse('html');
        $rep->title = jLocale::get('string.createOrModifyHotel');
        $rep->body->assign('MAIN', $tpl->fetch('hotelTobeModified'));

        return $rep;
    }

    function saveHotel() {
        
        $form = jForms::fill('hotelsform');
        if(!$form->check()) {
            $rep = $this->getResponse('redirect');
            $rep->action = 'default:showFormHotel';
            return $rep;
        }
        if($form->check()) {
            if($form->saveToDao('hotels')) {
                jMessage::add( jLocale::get('string.hotel.hotelsModified'), 'msgNoticeContact' );
            } else {
                jMessage::add( jLocale::get('string.hotel.hotelMofifiedError'), 'msgErrorContact' );
            }            
            $rep = $this->getResponse('redirect');
            $rep->action = 'default:getHotelsList';
            return $rep;
        }
    }

Et le template form

<h2>blabla</h2>
<hr>
<div id="form">
	{form $form, 'thermes~default:saveHotel'}
		{formcontrols array('style','categorie','nom_loge','adr_loge','vle_loge','cp_loge','photo_loge','descr_loge','mail_loge','fax_log','tel_loge')}
                <div class="userFormItem {ifctrl 'message'}userFormMessage{/ifctrl}">
                    {ctrl_label}{ctrl_control}
                </div>
  		{/formcontrols}
  		<div> {formsubmit} </div>
  	{/form}
</div>

Merci.

  [Opened] Call to a member function check() on a non-object

Reply #1 Posted by vigier on 10/27/2012 10:18

En fait, j'ai trouvé la solution.

Il me manquait un paramètre dans la méthode jForms::fill('hotelsform') Il fallait ajouter l'id du tuple à modifier : $hotelId récuperé dans un champ caché.

Merci à tous ceux qui ont regardé mon post.

 
Page
  1. Call to a member function check() on a non-object