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