2016-02-04 37 views
4

我正在Laravel創建一個項目。在updatepackage.blade.php用戶選中了一個複選框。然後將複選框的行值存儲到數據庫中併發送到名爲printpackage.blade.php的另一個視圖。
問題開始。當用戶刷新頁面時,條目中顯示的值將自動插入到數據庫中。我不知道如何阻止這一點。如何阻止Laravel在頁面刷新時將數據插入數據庫?

updatepackage.blade.php

<td align='center'>{{$i}}</td>  
<td><input type='text' name="meter[]" readonly value="{{$item['passmts']}}" ></td> 
<td><input type='text' name="points[]" readonly value="{{$item['points']}}"></td> 
<td><input type='text' name="pts[]" readonly value="{{$item['pts']}}"></td> 
<td><input type="checkbox" name="ids[]"value="{{$i}}" /></td> 

clientcontroller.php

$insert=DB::table('packageroll')->insert(array(Input::all())); 
$tc=\Input::get('tc'); 
$construction=\Input::get(construction'); 
$table1= DB::table('packageroll')->where('tc','=',$tc)->where('construction','=',$construction)->get(); 
return \View::make('dashboard.vendor.printpackage')->with('table1',$table1); 

printpackage.blade.php

<td><input type='text' name='meter[]' value="{{$item['meter']}}" ></td> 
<td><input type='text' name='points[]' value="{{$item['points']}}"></td> 
<td><input type='text' name='pts[]' value="{{$item['pts']}}"></td> 
+0

你能否提供更多更清晰的信息,像動作名稱,路線和控制器當前信息不足以回答截至目前爲止只有建議的形式是註釋此行$ insert = DB :: table('packageroll') - > insert(array(Input :: all())); ' –

+0

你需要分開你的邏輯,一個用於視圖的功能和一個用於保存數據的邏輯,你將頁面從數據保存重定向到視圖 – madalinivascu

+0

@alankar,在我的第一個視圖中chckbox,動作名稱是「updatepackage」,控制器正在將發佈的數據存儲到數據庫中,並將數據發送到另一個視圖中,該視圖稱爲「printpackage」,用戶需要在該視圖中打印數據,此處還可以獲取用戶的值 – Matheshwaran

回答

2

嘿,你可以使用不同的驗證爲更新小心,如果你有獨特的價值下面我提到如何處理

public function store(Request $request) 
    { 
     $this->validate($request, ['code'=>'required|unique:consignees,''=>'',''=>'']); 
    } 

public function update(Consignee $consignee,Request $request) 
    { 
     $this->validate($request,['code'=>'required|unique:consignees,code,'.$consignee->id,''=>'',''=>'']); 

    } 
相關問題