Salve a tutti.
Ho un problema con un update di un attributo (campo) nel database.
E’ la prima volta che mi cimento con l’ update di vari records tramite tabular input.
Quindi non tiratemi troppo le orecchie se dico qualche cavolata!!!
Allego un file che riguarda la vista sulla quale si presenta il problema.
Ho queste funzioni nel controller:
public function getRecuperoRecords() {
$items = array();
if (isset($_POST['DatiUtente']) && is_array($_POST['DatiUtente'])) {
foreach ($_POST['DatiUtente'] as $item) {
if ( array_key_exists('id', $item) ){
$items[] = DatiUtente::model()->findByPk($item['id']);
}
else {
$items[] = new DatiUtente();
}
}
}
return $items;
}
public function actionAssegna()
{
$this->layout="//layouts/benvenuto";
$assegna_codice=new CodiceFiscale();
$items=$this->getRecuperoRecords();
if(isset($_POST['DatiUtente']))
{
$valid=true;
foreach($items as $i=>$item)
{
if(isset($_POST['DatiUtente'][$i]))
$item->attributes=$_POST['DatiUtente'][$i];
$valid=$item->validate() && $valid;
}
if($valid)
{
$update_utente = $model->id_utente;
$assegna_codice->attributes=$_POST['DatiUtente'];
$assegna_codice = DatiUtente::model()->findByAttributes(array('id_codice'=>array($update_utente)));
$assegna_codice->isNewRecord = false;
$assegna_codice->codice_fiscale = $model->codice_fiscale;
if($assegna_codice->save(false))
{
$this->redirect(array('index'));
}
}
}
$this->render('frontend/assegna-codice-fiscale',array(
'items'=>$items
));
}
Questa è la vista divisa in due file
<td class="table_data" width="auto" style="font-weight:bold;">Nome</td>
<td class="table_data_r" width="auto" style="font-weight:bold;">Azioni</td>
<!--<td class="table_data_r"><b>Data / Ora</b></td>-->
</tr>
<?php $this->widget('zii.widgets.CListView', array(
'dataProvider'=>$dataProvider,
'itemView'=>'frontend/_assegnazione_codice_fiscale',
)); ?>
<tr class="tabella_info_footer">
<td colspan=5 class="tabella_chiusura_form">
<?php
echo CHtml::submitButton($data->isNewRecord ? 'Crea' : 'Assegna',array('class'=>'btn btn-primary btn-small', 'submit' => array('DatiUtente/assegna')));?>
<?php echo CHtml::endForm(); ?>
</td>
Secondo file vista dove ho l’ attributo (o campo) che dovrei aggiornare
Piu records…stesso attributo da aggiornare sui vari record della vista:
...................altro codice
<td style="border-right:3px solid #b11a01; padding:30px 0px 0px 0px;" width="30%">
<?php echo CHtml::beginForm();?>
<?php
$items = DatiUtente::model()->findAllByAttributes(array('id_utente'=>$data->id_utente));
foreach($items as $i=>$item){ ?>
<?php echo CHtml::activeTextField($item, "[$i]codice_fiscale"); ?>
<?php }?>
</td>
................... altro codice
Il nocciolo della questione è proprio su questo campo da aggiornare.
Al click sul pulsante continua a darmi questo errore (non esgue il redirect, non aggiorna i dati) e non riesco a risolverlo.
Fatal error: Call to a member function getErrors() on a non-object in C:\xampp\htdocs\yii\framework\web\helpers\CHtml.php on line 2002
su pgina bianca.
Come posso risolvere? Grazie in anticipo !!!