Как привести или преобразовать строку значения массива в логическое значение в php - PullRequest
0 голосов
/ 06 июня 2018

Я работаю с 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
}

Ответы [ 3 ]

0 голосов
/ 06 июня 2018

Для вашего случая

@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

Попробуйте вот так

#### edit ####

$data=$_POST[];
foreach($data as $record){
    $record=(boolean)$record;
   //now $record is boolean 
}
0 голосов
/ 06 июня 2018

попробуй вот так

@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
0 голосов
/ 06 июня 2018

HTML двойные кавычки.Если ваши значения всегда будут «истинными» или «ложными», то вы можете специально проверить «истинные».

// 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) ;
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...