2017-05-30 23 views
0

我有一个数组像下面这些来自形式:删除阵列值双引号,同时节省 - PHP

array:4 [▼ 
    "login-history.view" => "true" 
    "login-history.create" => "true" 
    "login-history.edit" => "true" 
    "login-history.delete" => "true" 
] 

我想将其存储在数据库中是这样的:

{ 
"login-history.view":true, //without double qoute in value true and false. 
"login-history.create":true, 
"login-history.edit":true, 
"login-history.delete":true 
} 

但是,当我救它,它总是将象下面这样:

{ 
"login-history.view":"true", //I want to remove double quote around true and false for every value 
"login-history.create":"true", 
"login-history.edit":"true", 
"login-history.delete":"true" 
} 

我想保存记录而没有围绕双qoute。我目前只是简单地将数值保存为雄辩的数值节省

$permissions = $request->get('permissions'); 
$role = Sentinel::findRoleBySlug($slug); //slug is role slug ex. admin, manager, user 
$role->permissions = $permissions; 
$role->save() 

我该如何实现它?

更新

我使用Laravel 5.4和MySQL数据库,Cartalyst哨兵软件包ACL

+0

什么是数据库定义的蛮力解决问题的方法你在用吗?在您进行保存的地方发布更多代码。 – Hakaishin

+0

'array_walk($ myArray,function(&$ value){$ value ==='true'?true:false;});' –

回答

0

这是上面

foreach($myArray as $key=>$value){ 
    $myArray[$key] = $value==='true' ? true : false; 
} 
+0

好用。你能解释为什么'$ myArray [$ key] = $ value'?我们不能简单地至少使用'$ value ===' – vijayrana

+0

@vijayrana,你必须在foreach中这样做:'$ myArray [$ key] = $ value ==='true;'。 – Terminus

+0

它没有任何意义@Terminus,“至少”意味着什么?可以请你解释一下 – vijayrana