[英]How to bulk insert in laravel 5.4 using eloquent
我有一個html表單,在我的表單中,我想使用laravel雄辯地將其批量插入數據庫。
這是我的保存方法。
public function storecheque(Request $request)
{
$directcheque=new Directcheque();
$directcheque->client_id=$request->input(['client_id']);
$directcheque->bank_id=$request->input(['b_name']);
$directcheque->cheq_amt=$request->input(['cheqamt']);
$directcheque->cheq_no=$request->input(['cheq']);
$directcheque->collc_date=$request->input(['cdate']);
$directcheque->save();
redirect(route('directcheqentry'));
}
這是我的表單視圖。
<div class="row">
<div class="col-md-2">
<select name="b_name[]" class="form-control b_name" required="">
<option value="">-Select Bank-</option>
@foreach($banks as $bank)
<option value="{{$bank->id}}">{{$bank->bank_name}}</option>
@endforeach
</select>
</div>
<div class="col-md-3">
<input type="text" name="cheqamt[]" class="form-control cheq" value="0" required="">
</div>
<div class="col-md-2">
<input type="text" name="cheq[]" class="form-control cheq" value="0" required="">
</div>
<div class="col-md-2">
<input type="date" name="cdate[]" class="form-control cdate" required="">
</div>
你怎么了
我認為您可以在沒有input()的情況下使用請求,如下所示:
.....
$directcheque->client_id=$request->client_id;
....
希望能幫助到你 :)
這是一個示例,而不是解決方案,請耐心等待。
可以將所有輸入發布到Array中,這樣也可以將其作為PHP Array接收,如下所示:
<div class="row"> <form action="/thecontrollername" method="post"> <div class="col-md-2"> <select name="cheq[bank_name]" class="form-control b_name" required=""> <option value="">-Select Bank-</option> @foreach($banks as $bank) <option value="{{$bank->id}}">{{$bank->bank_name}}</option> @endforeach </select> </div> <div class="col-md-3"> <input type="text" name="cheq[amt]" class="form-control cheq" value="0" required=""> </div> <div class="col-md-2"> <input type="text" name="cheq[amount]" class="form-control cheq" value="0" required=""> </div> <div class="col-md-2"> <input type="date" name="cheq[date]" class="form-control cdate" required=""> </div> <div class="col-md-2"> <input type="submit" name="submit" value="Save"> </div> </form> </div>
然后在您的控制器中,您可以收到數組“ cheq”
現在可以在控制器存儲功能中或任何位置進行調用:
$cheq = $request->input('cheq');
現在,您可以像這樣初始化$directcheque
:
$directcheque=new Directcheque($cheq);
並保存它或執行您想要的操作。
$directcheque->save();
只要在表格中輸入正確的字段名稱即可。
如果收到錯誤消息:
General error: 1364 Field 'some_field' doesn't have a default value
確保:
protected $fillable = [ 'some_field'];
在模型類中聲明,並且$ fillable必須具有您希望通過上述方法通過初始化填充的所有鍵(字段名稱)。
干杯
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.