首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >laravel 5.4中的数组到字符串转换,控制器

laravel 5.4中的数组到字符串转换,控制器
EN

Stack Overflow用户
提问于 2017-09-12 10:05:07
回答 3查看 10.2K关注 0票数 2

在插入多个数据时,将数组转换为错误,下面我提到的代码请看一下,有人来帮我

Controller.php

代码语言:javascript
运行
复制
         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) ;

在执行insert_role变量时,我得到了名为数组到字符串转换的错误

(2/2) QueryException数组到字符串转换(SQL:插入到role_user (role_iduser_id)值(1,16))

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2017-09-12 10:16:49

$roles$getid都是数组。我猜您希望将所有角色分配给所有选定的邮件地址。然后,您必须执行以下操作:

代码语言:javascript
运行
复制
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);

我觉得这个应该管用。

票数 1
EN

Stack Overflow用户

发布于 2017-09-12 10:13:57

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

$getid[]=$idget->id;$getid=$idget->id;

票数 1
EN

Stack Overflow用户

发布于 2017-09-12 12:50:58

不是在数组中赋值,而是尝试将其赋值为字符串,这就是导致错误的原因,可能的修正是。

代码语言:javascript
运行
复制
$roles[]= $v['role_id']; 
$getid[]=$idget->id;  
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/46173560

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档