从可变开始生成的视图称为$数据,这是一个关联数组,其包括一个对象,并且其打印的值是这样的:笨:没有在某种情况下
Array
(
[item] => stdClass Object
(
[id] => 1
[tipo] => 0
[idioma] => es
[nombre] => Artículo de prueba
[titulo] => Esto es un artículo de prueba
[alias] => articulo-de-prueba
[texto] => Lorem ipsum etc etc
[url] =>
[video] =>
[fecha_c] => 2012-11-27 10:50:37
[fecha_m] => 2012-11-27 17:00:00
[fecha_p] => 2012-11-28 00:00:00
[destacado] => 0
[status] => 1
)
[imagenes] => Array
(
)
)
我需要过滤其值并将其分配给另一个数组,这种方式:
protected function load_form($data = '') {
$this->load->helper('form');
// If item data have been sent, pass it to the form view to edit it.
// Else display empty form for new item.
if (! empty($data)) {
// Data can be an associative array with an object and another array or just an object
if (array_key_exists('item', $data)) {
$this->_vars['item'] =& $data['item'];
}
else {
$this->_vars['item'] =& $data;
}
if (array_key_exists('imagenes', $data)) {
$this->_vars['imagenes'] = $data['imagenes'];
}
}
$view = $this->load->view(ADMIN_FORMS_PATH . $this->_controller . '_form', $this->_vars, true);
/*DEBUG*/ echo $view; // just for debugging purposes
}
第一分配产生这些错误:
一个PHP错误遇到严重性:通知消息:未定义指数: 项目文件名:核心/ Admin_Controller.php行号:205
一个PHP错误遇到严重性:通知消息: 类的对象stdClass的不能转换成int文件名: 核心/ Admin_Controller.php行号:205
它像项目索引不存在,它的作用。此外,它会尝试将该对象转换为整数。
为什么会发生这种情况,应该怎么做才能解决这个问题?
编辑:
我是做& =代替= &。这是错误的原因。
无论如何,问题仍然存在,代码似乎停止。
EDIT2:
正在试图重新定义的问题。它可能与CodeIgniter有关,所以我添加了整个函数,包括CodeIgniter函数。
load_form()方法可以从创建新项目的请求中调用,在这种情况下$ data是空的,或者是从编辑给定项目(在$ data中)的请求中调用。在第一种情况下(创建),执行调试行,但不执行第二种情况(版本)。
你能告诉我们Admin_Controller.php的第205行吗? –
@Fabio:第205行是第一项任务:$ this - > _ vars ['item'] =&data ['item']; –
是否存在'$ this - > _ vars'并且它是一个数组? – sierrasdetandil