Я выполняю запрос и затем дешифрую его в контроллере. После расшифровки я помещал результаты в массив и отправлял их в представление. Проблема в том, что с этим решением мне нужно переписать все мои представления, чтобы проанализировать отправленные массивы вместо объектов активной записи, отправленных ранее.
Есть ли способ превратить расшифрованный массив обратно в объект, который будет работать с существующим кодом активной записи в представлении?
До
Контроллер:
$name = $this->Clients_model->getNameData('*','client_id='.$clid,'');
$data['name'] = $name;
$this->load->view('names/name_view',$data);
Вид:
if($name->num_rows()) > 0){
foreach($name->result() as $row){
echo $row->data;
[...]
Теперь
Контроллер:
$name = $this->Clients_model->getNameData('*','client_id='.$clid,'');
$nameArray= array();
foreach ($name->result() as $row){
$x = $row;
$keys = array('id','client_id');
$unenc = array();
foreach ($x as $key=>$value){
if(! in_array($key, $keys)){
$unenc[$key]=$this->encrypt->decode($value,$this->e_key);
}else{
$unenc[$key]=$value;
}
}
array_push($nameArray,$unenc);
}
//Creates an object with the data, but doesn't work with CI active record
//foreach ($nameArray as $akey => $aval) {
// $namea -> {$akey} = $aval;
//}
//return $data;
$data['name'] = $nameArray;
$this->load->view('names/name_view',$data);
Вид:
if(count($name) > 0){
foreach($name as $key=>$row){
echo $row['data'];
[...]
Во втором (теперь) контроллере есть некоторый закомментированный код, который будет создавать объект, но он не ведет себя так, как ожидается с активной записью. Есть ли способ взять массив $nameArray()
и превратить его в объект, который будет работать с существующим кодом представления (например, с кодом в «before: view» выше)?
Спасибо!