使用相同的变量名输入从Laravel中的数据库中的单个列更新多个数据

时间:2015-09-04 06:10:51

标签: php laravel

大家好

我是laravel的新手。

从我的表单中,变量名称:sequenceJawatankuasaseniorityJawatankuasa都应该将数组值传递给控制器​​。这是因为,我希望在点击按钮Sequence后使用不同的 ID 更新SenioritySimpan Turutan这两个字段的许多不同输入数据
然后它将参数由 ID SequenceJawatankuasa 值和 seniorityJawatankuasa 值传递给类及其模型。
但是有stil错误而且没有更新价值。请任何人帮助我。

这是我的表格:

<?php $count = 1; ?>
    @foreach ($jawatankuasa as $jawatankuasaListView)   
    <tr height="20" valign="top">
        <td class="TableCol1Center">{{ $jawatankuasaListView['ID'] }}</td>
        <td class="TableCol2Left"><a href="{{URL::to('pentadbiranjawatankuasadetails/sujk?t=2&jawatankuasaid='.$jawatankuasaListView['ID'].'&bc=1')}}" class="BlueLink">{{ $jawatankuasaListView['NAMA_JAWATANKUASA'] }}</a></td>
        <td class="TableCol2Left"> {{ $jawatankuasaListView['PENERANGAN'] }}</td>
        <td class="TableCol2Center">
            <input type="text" name="seniorityJawatankuasa[]" style="text-align: center;" maxlength="2" size="1" value="{{ $jawatankuasaListView['SENIORITY'] }}" onchange="javascript:FilterChar4(this)">
        </td>
        <td class="TableCol2Center">
            <input type="text" name="sequenceJawatankuasa[]" style="text-align: center;" maxlength="2" size="1" value="{{ $jawatankuasaListView['SEQUENCE'] }}" onchange="javascript:FilterChar4(this)">
        </td>
        <td class="TableCol2Center">
            {{ strcmp( $jawatankuasaListView['SOFT_DELETE'], SOFT_DELETE ) == 0 ? '<b><font color="red">Tidak Aktif</font></b>' : '<b>Aktif</b>' }}</td>                            
        </td>                           
        <td class="TableCol3Center">
            @if( strcmp( $jawatankuasaListView['SOFT_DELETE'], SOFT_DELETE ) != 0 )
                <input type="checkbox" name="DelPstId[]" value="{{ $jawatankuasaListView['ID'] }}">
            @endif
        </td>
    </tr>
<?php $count++; ?>
@endforeach
    <tr height="20">
        <td align="right">
            <input type="button" name="btnSave" value="Simpan Turutan" class="NormalTextCenter" onclick="SimpanTurutan();" >
        </td>
    </tr> <br/>

Javascript:

function FilterChar4(field) {
    var vResult = new String();
    var vNum = "0123456789.";
    var vChar = field.value.split(""); // create array
    for (i=0; i<vChar.length; i++) {
       if (vNum.indexOf(vChar[i]) != -1) vResult += vChar[i];
    }
    if (field.value != vResult) field.value = vResult; 
}
function SimpanTurutan(){
    if (confirm("Simpan turutan ini?")) {       
        ShowLoading("Loading");
        var url = "{{ URL::to('pentadbiranjawatankuasaupdateturutan/sujk?t=2') }}" ;
        document.JawatankuasaListForm.action = url;
        document.JawatankuasaListForm.submit();
        return true;
    }
}


控制器:

public function pentadbiranJawatankuasaUpdateTurutan()
{           
    $kodJawatankuasaClass = new KodJawatankuasaClass();
    try{

        $input = Input::all();  

        #update process
        if(( isset( $input['jawatankuasaid'])) && ( isset( $input['seniorityJawatankuasa'])) && ( isset( $input['sequenceJawatankuasa'])) ){
            $updateTurutan = $kodJawatankuasaClass->getJawatankuasaUpdateTurutanByID( $input['jawatankuasaid'], $input['seniorityJawatankuasa'], $input['sequenceJawatankuasa'] );
        }

        #declaration pagination
        $pagination = new PaginationBase();

        #get page no
        $pageNo = empty( $_GET['pageNo'] ) ? 0 : $_GET['pageNo'];
        $pagination->setPageSize();

        #count and get data
        $jawatankuasa_count = $kodJawatankuasaClass->getJawatankuasaKodPagination($pagination->getPageSize(), $pageNo, true ); 
        $jawatankuasa= $kodJawatankuasaClass->getJawatankuasaKodPagination( $pagination->getPageSize(), $pageNo );

        #pagination setting
        $pagination->setPageDataSize( $jawatankuasa_count );
        $pagination->setCurrentPage( $pageNo );

        return View::make('sujk/pentadbiran/jawatankuasa/jawatankuasa-view-sujk', array( 'jawatankuasa' => $jawatankuasa, 'pagination' => $pagination ));
    }
    catch (Exception $e) {
        loginfo(ERROR_LOG, $e);
    }
} 
<br/> </br>

班级:

public function getJawatankuasaUpdateTurutanByID($id, $seniority, $sequence){ 
        $kodJawatankuasa = new KodJawatankuasa();
        try{
            $kodJawatankuasa->getJawatankuasaUpdateTurutanByID($id, $seniority, $sequence);     
        }catch(Exception $exception){
            loginfo(ERROR_LOG, $exception);
        }
        return false;
    }


型号:

public function getJawatankuasaUpdateTurutanByID( $id, $seniority, $sequence )
{
    try{
        $this->whereIn('ID', $id)
             ->update(['SENIORITY' => $seniority['seniorityJawatankuasa'], 'SEQUENCE' => $sequence['sequenceJawatankuasa']]); 

    }catch(ModelNotFoundException $exception){
        loginfo( ERROR_LOG, $exception );
    }
}

1 个答案:

答案 0 :(得分:0)

更改表格中的输入名称

<input name"staff[<?php echo $i; ?>][id]"> type="hidden">
<input name="staff[<?php echo $i; ?>][SENIORITY]">
<input name="staff[<?php echo $i; ?>][SEQUENCE]">

然后在控制器中你可以执行以下操作:

<?php
$staffs = Input::all();
foreach($staffs as $staff) {
  $staff = Staff::find($staff['id'])->update($staff);
}
?>