kazio
(Kontakt)
July 31, 2010, 2:31pm
1
Helo
this saving model by model
foreach($_POST['sorting-table'] as $sort) {
if ($sort) {
$i++;
$user = User::model()->find($sort);
$user->ordering = $i;
$user->save(false);
}
}
how can i save all set of models after change vales,
something like this
foreach($_POST['sorting-table'] as $sort) {
if ($sort) {
$i++;
$user = User::model()->find($sort);
$users[] = $user;
$user->ordering = $i;
//$user->save(false);
}
}
$users->saveAll();
is possible something like this ?
andy_s
(Arekandrei)
July 31, 2010, 3:25pm
2
Why not do one more foreach? Or you can create a static method User::saveAll($models)
kazio
(Kontakt)
July 31, 2010, 3:41pm
3
hi
i want to save all models in one db request,
kazio
(Kontakt)
July 31, 2010, 4:30pm
4
i solved this by doing
$sql = "update User set ordering = case id ";
if(isset($_POST['sorting-table']))
{
foreach($_POST['sorting-table'] as $sort) {
if ($sort) {
$i++;
$sql .= "when $sort then $i ";
}
}
$sql .= 'else ordering end ';
$command=$db->createCommand($sql);
$command->execute();
}
}
itmagetan
(Itmagetan)
May 15, 2011, 10:27pm
5
Just for sharing (although this is a very old post), i do it like this:
public function actionCreate()
{
$model=new DiklatEvaluasi;
if(isset($_POST['DiklatEvaluasi']))
{
$model->attributes=$_POST['DiklatEvaluasi'];
foreach($model->id_evaluasi_kriteria as $key=>$val)
{
$model=new DiklatEvaluasi;
$model->attributes=$_POST['DiklatEvaluasi'];
$model->id_evaluasi_kriteria=$key;
$model->id_evaluasi_nilai=$val;
$model->save();
}
$this->redirect(array('diklatPeserta/admin','id_diklat_realisasi'=>$id_diklat_realisasi));
}
$this->render('create',array(
'model'=>$model,
));
}
Maybe there are a better way, please share here. Thanks.