Laravel一次保存多条记录

问题描述:

一次保存多条记录有问题。这是我的形式Laravel一次保存多条记录

{!! Form::open(array('url'=>'pipeline/save?return='.$return, 'class'=>'form-horizontal','files' => true , 'parsley-validate'=>'','novalidate'=>' ')) !!} 
    @foreach($destinazioni as $destinazione) 
    <div class="col-md-2 col-md-offset-2 text-left"> 
     <input type="text" name="destination[]" readonly class="form-control" value="{{ $destinazione }}"/> 

    </div> 

    <div class="col-md-6 text-left"> 
     <select name="target[]" class="form-control"> 
     <option value="Nessuna">Seleziona...</option> 
     @foreach($campi->keys() as $target) 
     <option value="{{ $target }}"> {{ $target }} </option> 
     @endforeach 
     </select> 
    </div> 
    @endforeach 
     @if(!empty($profilo->set_attributi)) 
      @foreach($profilo->attributi as $attributo) 
      <div class="col-md-2 col-md-offset-2 text-left"> 
       <input type="text" name="destination[]" readonly class="form-control" value="{{ $attributo->nome_opzione }}"/> 
      </div> 
      <div class="col-md-6 text-left"> 
     <select name="target[]" class="form-control"> 
     <option value="Nessuna">Seleziona...</option> 
     @foreach($campi->keys() as $target) 
     <option value="{{ $target }}"> {{ $target }} </option> 
     @endforeach 
     </select> 
    </div> 
    @endforeach 
@endif 
<div style="clear:both"></div> 


        <div class="form-group" style="margin-top:5%"> 
        <label class="col-sm-4 text-right">&nbsp;</label> 
        <div class="col-sm-8"> 
        <button type="submit" name="apply" class="btn btn-info btn-sm" ><i class="icon-checkmark-circle2"></i> {{ Lang::get('core.sb_apply') }}</button> 
        <button type="submit" name="submit" class="btn btn-primary btn-sm" ><i class="icon-bubble-check"></i> {{ Lang::get('core.sb_save') }}</button> 
        <button type="button" onclick="location.href='{{ URL::to('pipeline?return='.$return) }}' " class="btn btn-warning btn-sm "><i class="icon-cancel-circle2 "></i> {{ Lang::get('core.sb_cancel') }} </button> 
        </div>  

        </div> 

     {!! Form::close() !!} 

这是控制器在那里我试图处理数据的插入:

$rules = $this->validateForm(); 
    $validator = Validator::make($request->all(), $rules); 
    if ($validator->passes()) { 
     $request = array('destination' => $request->input('destination'), 'target' => $request->input('target')); 
     foreach ($request as $req) { 
      $destination = new Pipeline;   
      $destination->destination = $req->destination; 
      $destination->target = $req->target; 
      $destination->save(); 
     } 

     return Redirect::to('pipeline')->with('messagetext',\Lang::get('core.note_success'))->with('msgstatus','success'); 

但实际上我得到尝试获得非对象错误的proprety。我也试图与管道::插入($ data)方法,但如果你知道如何建立阵列,只是建立与每个对象的数组像

$arrays = [ 
    'destination' => $req->destination, 
    'target'  => $req->target 
] 

然后返回列错误

如果有人有这个问题,我只是通过implode解决并爆炸$ request,然后用cicle循环。很容易。

function postSave(Request $request) 
    { 

     $rules = $this->validateForm(); 
     $validator = Validator::make($request->all(), $rules); 
     if ($validator->passes()) { 
     $idz = implode(",", $request->input('destination')); 
     $ids = explode(",", $idz); 
     $tgz = implode(",", $request->input('target')); 
     $tgs = explode(",", $tgz); 
     for ($i = 0; $i < count($ids); $i++) 
     { 
      $pipeline = new Pipeline; 
      $pipeline->destination = $ids[$i]; 
      $pipeline->target = $tgs[$i]; 
      $pipeline->save(); 
      $i = $i++; 

     } 

的错名字插入于一身的阵列去

DB::insert($arrayOfArrays); 

如果你还想要插入你正在做的方式,尝试用

Pipeline::create([ 
    ... 
]); 
+0

得到这个错误的preg_replace():参数不匹配,模式是一个字符串,而替换为你使用哪种方法数组 – rubenSousa

+0

? – EddyTheDove

+0

创建数组然后DB :: insert – rubenSousa