2016-08-26 3 views
0

내가 배열을 삽입하기 위해 노력하고있어하지만 난 오류가 받고 있어요 될 것으로 예상 - 같은 아래는 preg_match()는 매개 변수 2 문자열 배열을 지정해, 오류

preg_match() expects parameter 2 to be string, array given

내 양식 :

{!! Form::text('description[]',null,['class' => 'input-field input-sm','v-model'=>'row.description']) !!} 
{!! Form::text('log_time[]',null,['class' => 'input-field input-sm','v-model'=>'row.log_time']) !!} 

내 컨트롤러 가기 기능 :

$this->validate($request, $this->rules); 
     $data = array(); 
     foreach($request->description as $key=>$value){ 
      $data[]=[ 
       'description'=> $value, 
     'log_time'=> $request->log_time[$key], 
     'call_id'=>$call->id, 
      ]; 
     } 
     PortLog::create($data); 

내가 DD ($ 데이터)를 확인

array:2 [▼ 
    0 => array:3 [▼ 
    "description" => "des" 
    "log_time" => "" 
    "call_id" => 16 
    ] 
    1 => array:3 [▼ 
    "description" => "" 
    "log_time" => "hi" 
    "call_id" => 16 
    ] 
] 

여기에 무엇이 잘못 되었습니까?

+1

단일 인스턴스를 사용하여 각 사용 삽입을위한 한 모델

if (count($bureaus) > 0) { foreach ($bureaus as $bureau) { $insertArr[]=array( 'sub_id'=>$data['sub_id], 'account_number'=>$data['roll_number'], 'status'=>$data['status'], 'bureau'=>$bureau, 'type'=>$data['type'] ); } 

의 인스턴스를 생성하기위한 것입니다. 'preg_match()'(코드에있는 곳)에 적절한 문자열 인수가 주어지지 않습니다. 코드의이 부분에는'preg_match()'가 없으므로이 코드는 문제와 관련이없는 것으로 보입니다. – Rasclatt

+0

@Anant 해당 오류가 아닙니다. 잘못된 문자열 – Developer

+0

예 죄송합니다. 불쾌합니다. 내 의견은 삭제했지만 인터넷 문제로 인해 삭제되지 않았습니다. –

답변

4

port_logs을 하나의 문장에 여러 개 삽입하려고했습니다. 그러나 create() 메서드는 하나의 모델 인스턴스 만 만들 수 있습니다. 문을 사용하거나 $data을 통해 코드를 foreach으로 업데이트하고 create() 문을 여러 개 발행해야합니다. 당신은 단지 데이터를 삽입 할, 당신은 PortLog 인스턴스의 무리를 instante하지 않으려면

PortLog::insert($data); 

// or 

foreach($data as $row) { 
    PortLog::create($row); 
} 

는 다음 insert() 방법은 갈 수있는 방법입니다. 각 행에 대해 새로운 PortLog 인스턴스를 인스턴스화해야하는 경우 create() 메서드를 사용하는 것이 좋습니다.

-1

하나의 명령문에 여러 개의 port_log를 삽입하려고합니다. 그러나, 생성() 메서드는 오류가 당신을 말하고있다

Student::insert($insertArr);