使用laravel进行数组到字符串的转换

使用laravel进行数组到字符串的转换,laravel,Laravel,当我从复选框中选择用户,然后单击提交时,我试图将多用户id发送到数据库,因此我面临错误数组到字符串转换如何解决此问题?请帮帮我,谢谢 请查看错误 控制器 public function adduseraction(REQUEST $request) { $useradd=$request->get('userid'); $checkid=$request->get('multiusersid'); $user=Users_permissions::cre

当我从复选框中选择用户,然后单击提交时,我试图将多用户id发送到数据库,因此我面临错误数组到字符串转换如何解决此问题?请帮帮我,谢谢

请查看错误

控制器

public function adduseraction(REQUEST $request)
{  
    $useradd=$request->get('userid');
    $checkid=$request->get('multiusersid');
    $user=Users_permissions::create([             
        'user_id'=>$useradd,
        'user_Access_id'=> $checkid
    ]);    
    $user->save();
}

html视图

<div class="card card-success">
    <div class="card-header">
        <h3 class="card-title">Users Permission </h3>
    </div>
    <br>
    <form action="{{route('adduseraction')}}" method="post">
        {{ csrf_field() }}
        <div class="col-sm-4">
            <select name="userid" class="form-control">
                @foreach($users as  $user)
                <option  value="{{$user->id}}">{{$user->name}}</option>           
                @endforeach
            </select>
        </div>
        <div class="card-body">
            <!-- Minimal style -->
            <div class="row">
            @foreach($users as  $user)
                <div class="col-sm-2">
                    <div class="form-check">
                    <input type="checkbox" name="multiusersid[]"  value="{{$user->id}}" class="form-check-input" > 
                    <h5 style="position:relative;left:10px;">{{$user->name}}</h5>
                    </div>
                    <!-- checkbox -->
                </div>
            @endforeach
        </div>
        <!-- /.card-body -->
        </div>
        <div class="card-footer">
            <button type="submit" name="btnsubmit" class="btn btn-primary col-md-2 
            center">Submit</button>
        </div>
    </form>
</div>
<!-- /.content-wrapper -->
**现状**

{"_token":"4Z3ISznqKFXTMcpBKK5tUgemteqxuJjQpKF8F0Ma","userid":"6","multiusersid":["2","5","7"],"btnsubmit":null}

它需要一个字符串,而您正在传递一个ID数组。您可能希望将数据库更改为json或执行json_ecode(检查ID)。这将使你的数组字符串化。然后你可以储存。但是,请记住,您将需要使用类型转换或手动进行转换

例如:

public function adduseraction(REQUEST $request)
{  
   $useradd=$request->get('userid');
   $checkid=$request->get('multiusersid');
   $user=Users_permissions::create([             
        'user_id'=>$useradd,
        'user_Access_id'=> json_encode($checkid)
   ]);    
   // $user->save(); // yes obviously not needed
 }
这是你的解决方案

public function adduseraction(REQUEST $request)
        {  
          $useradd=$request->get('userid');
          $checkid=implode(",", $request->get('multiusersid'));
          Users_permissions::create([             
               'user_id'=>$useradd,
               'user_Access_id'=> $checkid
            ]);
         }
使用
内爆($checkid,,')

用户权限模型的更改

<?php

namespace App;

use Illuminate\Database\Eloquent\Model;

class Users_permissions extends Model
{
     protected $table = 'userspermissions';
     protected $fillable = [
        'user_id','user_Access_id'
    ];
}

json_encode将把数组转换成字符串,然后可以存储在数据库中。相信我,你想走这条路,你不需要$user->save();我只是复制了他的例子,关键部分是json_编码(checkid)。create将在一次滑动中更新您的模型并保存()!不会运行您缺少“为什么这个答案获得downvote@AlexMac您可以编辑我的答案而不是只给出缺少的分号错误fr downvotedlol我会在您修复后立即更新。但是,json_encode和json_decode可以输入cast,而不是内爆和爆炸。这也是较少的工作。更具体地说,这。。。我使用过此代码,但遇到错误请检查flareapp.io/share/dPbodL7k#F62I使用过此代码,但遇到错误请检查
public function adduseraction(REQUEST $request)
{  
   $useradd=$request->get('userid');
   $checkid=$request->get('multiusersid');
   $user=Users_permissions::create([             
        'user_id'=>$useradd,
        'user_Access_id'=> implode($checkid, ',');
   ]);    
 }
<?php

namespace App;

use Illuminate\Database\Eloquent\Model;

class Users_permissions extends Model
{
     protected $table = 'userspermissions';
     protected $fillable = [
        'user_id','user_Access_id'
    ];
}