从一个名为$data的变量开始,它是一个包含一个对象的关联数组,其打印值为:
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 文件名:core/Admin_Controller.php 行号:205
它的行为就像项目索引不存在,但确实存在。此外,它尝试将对象转换为整数。
为什么会发生,我应该怎么做才能解决它?
编辑:
我在做 &= 而不是 =&。这就是错误的原因。
无论如何,问题仍然存在,代码似乎停止了。
编辑2:
试图重新定义问题。它可能与 CodeIgniter 相关,所以我添加了整个函数,包括 CodeIgniter 函数。
load_form() 方法可以从创建新项目的请求中调用,在这种情况下 $data 为空,或者从编辑给定项目的请求中调用(在 $data 中)。在第一种情况(创建)中,执行调试行,但在第二种情况(版本)中不执行。