zii.widgets.juiCJuiDatePicker non mi funziona =(

Ho creato una tabella e tramite Gii sono andato a creare il model e poi il crud. Ho messo un campo ‘data’ per memorizzare le date. Ho poi sostituito il codice di Yii con




	<div class="row">

		<?php echo $form->labelEx($model,'data'); ?>

		<?php $this->widget('zii.widgets.jui.CJuiDatePicker',array('name'=>'data','value'=>$model->data)); ?>

		<?php echo $form->error($model,'data'); ?>

	</div>



Ma il salvataggio non avviene correttamente. Non so come individuare l’errore.

Il dato non arriva dentro $_POST ma dentro a $_GET come è possibile!??!?

Risolto!!!

<?php $this->widget(‘zii.widgets.jui.CJuiDatePicker’,array(‘name’=>‘Events[data]’,‘value’=>$model->data,‘model’=>$model)); ?>

Events era scritto in minuscolo prima.

Prova in questo modo ad usarlo…




  <?php echo $form->labelEx($model,'data'); ?>

  <?php $this->widget('zii.widgets.jui.CJuiDatePicker', array(

        'model'=>$model,

        'attribute'=>'data',

        'language'=>'it',

        'options'=>array(

                'dateFormat'=>'dd.mm.yy',

                'showAnim'=>'fold',

        ),

  )); ?>

  <?php echo $form->error($model,'data'); ?>

Mmmm noto che non hai messo ‘name’ dentro i parametri passati al widget CJuiDatePicker. Cmq per il formato della data mi è bastato impostare il language ‘it’.

Provo a evolvere questo thread:

Se volessi potenziare la mia scrittura del codice e volessi scrivere




<?php echo $form->labelEx($model,'data'); ?>

  <?php $this->widget('zii.widgets.jui.CJuiDatePicker', array(

        'model'=>$model,

        'attribute'=>'data',

        'language'=>'it',

        'options'=>array(

                'dateFormat'=>'dd.mm.yy',

                'showAnim'=>'fold',

        ),

  )); ?>

  <?php echo $form->error($model,'data'); ?>



esiste un comando solo dove passare unicamente il nome del campo ed il modello? Che ne so, una cosa del tipo:




  <?php echo $form->widget('nome.del.widget',array(

             'label'=>'Data',

             'model'=>$model,

             'name'=>'data'

        )); ?>



Se non esiste, come posso creare un widget che serva a questo scopo? Ma sopratutto … ha senso farlo?

Nota che "name" si deve mettere solo se non si usa il model - http://www.yiiframework.com/doc/api/1.1/CJuiInputWidget#name-detail

Tutti i widget creati in Yii non hanno la “label”… .se ha senso farlo dippende da cosa ti serve e sopratutto quanto ti serve :)

Nella mia mente, se faccio un sito tutti i campi di un modulo o addirittura dell’intero sito li programmerò alla stessa maniera. Secondo me sarebbe più opportuno definire quella maniera ed avere un singolo metodo per richiamare un campo.

Cmq sia credo di aver capito l’ottica di Yii. Ti rigrazio dell’aiuto.

Credo che l’ottica di yii sia di usare sempre e solo model-attribute ogni volta che usi i model, name-value servono per quei (rari) casi in cui non hai un model.

Si ma, leggendo il codice, io come faccio a capire a quale campo si riferisce?

Il campo e’ quello specificato in attribute.

Hai ragione: non lo “vedevo” perchè mi aspettavo di trovarlo in ‘name’. Grazie mille ancora una volta.