【发布时间】:2011-03-01 17:32:05
【问题描述】:
我正在运行一个查询,然后在控制器中对其进行解密。解密后,我将结果放入数组并将其发送到视图。问题在于这个解决方案我需要重写我的所有视图来解析发送的数组而不是之前发送的活动记录对象。
有没有办法将解密后的数组转回一个可以与视图中现有的活动记录代码一起使用的对象?
之前
控制器:
$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' 中的代码)?
谢谢!
【问题讨论】:
标签: php activerecord codeigniter object