循环数据并与Yii一起插入表中

时间:2014-01-12 06:56:00

标签: php mysql yii

我有2个相关的表( putusan和detail_putusan )。

我在控制器上做了一个循环,以便获取表单中的现有数据,然后将其存储到表detilResult中。但我未能获取所有数据。 只有一个数据最后可以拍摄并保存到 detail_putusan 表。

如何通过在控制器上循环来检索所有数据?

我的控制器代码:

public function actionCreate()
{       
    $model = new HasilPutusan;


    if(isset($_POST['HasilPutusan']))
    {
        $HasilPutusan           = new HasilPutusan();
        $DetilSaksi         = new DetilSaksi();
        $HasilPutusan->attributes   = $_POST['HasilPutusan'];

        if($HasilPutusan->save()){         
             foreach ($_POST['rows'] as $key => $count ){
                 $DetilSaksi->id_detil_fk   = $HasilPutusan->id_detil_fk;
                 $DetilSaksi->id_saksi  = $_POST['data_'.$count];
                 $DetilSaksi->save();
             }
             $this->redirect('index');
        }
    }

    $this->render('create',array(
        'model'=>$model,
    ));
}

我的观点:

enter image description here

我的观点HTML:

<tbody>
    <tr>
        <td>
            <input type="hidden" value="1" name="rows[]" id="rows_1">
            <select name="data_1" id="data_1" class="small">
                <option value="">- Pilih Data -</option>
                <option value="1">Rian Josh</option>
                <option value="2">Brian Mac</option>
                <option value="3">Widi Astanto</option>
                <option value="4">Edy Gordo</option>
                <option value="5">Jin Kazama</option>
            </select>
        </td>
    </tr>
    <tr>
        <td>
            <input type="hidden" value="2" name="rows[]" id="rows_2">
            <select name="data_2" id="data_2" class="small">
                <option value="">- Pilih Data -</option>
                <option value="1">Rian Josh</option>
                <option value="2">Brian Mac</option>
                <option value="3">Widi Astanto</option>
                <option value="4">Edy Gordo</option>
                <option value="5">Jin Kazama</option>
            </select>
        </td>
        <td><a class="remCF" href="javascript:void(0);">Remove</a></td>
    </tr>
    <tr>
        <td>
            <input type="hidden" value="3" name="rows[]" id="rows_3">
            <select name="data_3" id="data_3" class="small">
            <option value="">- Pilih Data -</option>
            <option value="1">Rian Josh</option>
            <option value="2">Brian Mac</option>
            <option value="3">Widi Astanto</option>
            <option value="4">Edy Gordo</option>
            <option value="5">Jin Kazama</option>
            </select>
        </td>
        <td><a class="remCF" href="javascript:void(0);">Remove</a></td>
    </tr>
</tbody>

1 个答案:

答案 0 :(得分:3)

将DetilSaksi的初始化转移到foreach循环内。

       if($HasilPutusan->save()){         
             foreach ($_POST['rows'] as $key => $count ){
                 $DetilSaksi         = new DetilSaksi();
                 $DetilSaksi->id_detil_fk   = $HasilPutusan->id_detil_fk;
                 $DetilSaksi->id_saksi  = $_POST['data_'.$count];
                 $DetilSaksi->save();
             }
             $this->redirect('index');
        }