我正在使用Laravel ACL
。在每个角色中都有权限组。我使用复选框表示所有权限。当我提交表单时,它会返回一个这样的权限数组。
{
read: "true",
create: "true",
delete: "false",
update: "false"
}
数组值显示为double quotes
字符串,但我希望它为boolean
如何将数组值字符串转换为布尔值。
@foreach($role->permissions as $key=>$value)
<td>
<input type="hidden" name="permission[{{$key}}]" class="role" value="false" {{ $value==0 ? 'checked' : '' }}>
<input type="checkbox" name="permission[{{$key}}]" class="role" value="true" {{ $value==1 ? 'checked' : '' }}>
</td>
@endforeach
我想像这样数组值。
{
read: true,
create: true,
delete: false,
update: false
}
答案 0 :(得分:0)
HTML双引号值。如果你的价值观永远是真实的&#34;或&#34;假&#34;然后你可以专门检查&#34; true&#34;。
// change your json into an array
$values = json_decode($yourValues, true) ;
// loop through and check for "true"
foreach($values as $key=>$value) {
$values[$key] = ($value == "true") ;
}
// if you need it as json again
$yourValues = json_encode($values) ;
答案 1 :(得分:0)
对于你的情况,
@foreach($role->permissions as $key=>$value)
<td>
<input type="hidden" name="permission[{{$key}}]" class="role" value="false" {{ (boolean)$value ? 'checked' : '' }}>
<input type="checkbox" name="permission[{{$key}}]" class="role" value="true" {{ (boolean)$value? 'checked' : '' }}>
</td>
@endforeach
试试这个
<强> ####编辑#### 强>
$data=$_POST[];
foreach($data as $record){
$record=(boolean)$record;
//now $record is boolean
}
答案 2 :(得分:0)
试试这个
@foreach($role->permissions as $key=>$value)
<td>
<input type="hidden" name="permission[{{$key}}]" class="role" value=false {{ $value=='false' ? 'checked' : '' }}>
<input type="checkbox" name="permission[{{$key}}]" class="role" value=true {{ $value=='true' ? 'checked' : '' }}>
</td>
@endforeach