2017-09-12 9 views
1

複数のデータを挿入しながら、私は変換エラーに配列を取得しています、私は下記のコードを見てくださいと誰かに私を助けてアレイ、コントローラ

Controller.php

  if(!empty($value)) 
       { 
        foreach ($value as $v) 
        { 
         $insert[] = ['name' => $v['name'], 'email' => $v['email'],'company_name' => $v['company_name'],'company_id' => $v['company_id'], 'emp_id' => $v['emp_id']];  
         $role_id= $v['role_id']; 
         $name=$v['name']; 
         $email=$v['email']; 
         $emails[]=$v['email']; 
         $emp_id=$v['emp_id'];      
         $data = array('name' => $name,'email' => $email , 'emp_id' => $emp_id); 
         $roles[]= $v['role_id']; 

        } 
       } 
      } 

      if(!empty($insert)) 
      { 
       $inserted=User::insert($insert); 
       if($inserted) 
       { 
        $email_select=User::select('id')->whereIn('email',$emails)->where('company_id',Auth::user()->company_id)->orderBy('id','Asc')->get(); 
        foreach ($email_select as $key => $idget) 
        { 
         $getid[]=$idget->id; 
        } 
       } 
       $datas[]=['user_id' => $getid , 'role_id' => $roles];     
       $insert_role=DB::table('role_user')->insert($datas) ; 

文字列変換(SQLへのinsert_role変数実行

(2/2)QueryExceptionアレイ間、私は、文字列変換に配列と呼ばれるエラーを取得しています: 0123に挿入 (role_iduser_id)の値(1、16))

+0

あなたは 'foreach' – morph

+0

に' $のroles'を構築するため、 '、配列である[ 'ROLE_ID']' $件のデータのように見えるあなたは簡単にそれを説明してくださいことはできますか? – user7346035

答えて

1

$roles$getid$roles[]= $v['role_id'];$roles= $v['role_id'];

そして $getid[]=$idget->id;行い両方のアレイです。選択したすべてのメールアドレスにすべての役割を割り当てたいと思っています。次に、次の操作を行う必要があります。

if($inserted) 
{ 
    $email_select=User::select('id')->whereIn('email',$emails)->where('company_id',Auth::user()->company_id)->orderBy('id','Asc')->get(); 
    foreach ($email_select as $key => $idget) 
    { 
     foreach($roles as $role) { 
      $datas[] = ['user_id' => $idget->id, 'role_id' => $role]; 
     } 
    } 
} 
$insert_role=DB::table('role_user')->insert($datas); 

これはうまくいくと思います。

+0

ええ、それはまた働いています:)ありがとう – user7346035

+0

それが動作している場合、これをあなたの答えとして受け入れることができますか? –

1

$getid=$idget->id;
+0

ありがとうございました、その作業 – user7346035

+0

これは最後の行を挿入して残りを忘れていませんか? –

+0

あなたはarraypushにする必要があります – User123123

0

を配列に代入するのではなく、文字列として割り当てようとしています。つまり、エラーの原因となるのは です。

$roles[]= $v['role_id']; 
$getid[]=$idget->id;