我在试着找出为什么我要尝试获取非对象的属性。我对对象和数组不是很熟练,但我正在努力。下面是代码和错误消息。对如何解决这个问题有什么想法吗?
A PHP Error was encountered
Severity: Notice
Message: Trying to get property of non-object
Filename: models/sitemodel.php
Line Number: 208 and 215
function getSubMenuPages()
{
$this->db->select('site_menu_structures.id');
$this->db->from('site_menu_structures');
$this->db->where('site_menu_structures.short_name', 'mainnav');
$query = $this->db->get();
$menu_id = $query->row()->id;
$this->db->select('site_menu_structures_links.id, site_menu_structures_links.short_name, is_category');
$this->db->from('site_menu_structures_links');
$this->db->where('site_menu_structures_links.menu_structure_id', $menu_id);
$query = $this->db->get();
if ($query->num_rows() > 0)
{
$linksArray = $query->result();
foreach ($linksArray as $key => $link)
{
if ($link->is_category == 'Yes')
{
$linksArray->{$key}->child_links;
$this->db->select('site_menu_structures_links_children.link_name');
$this->db->from('site_menu_structures_links_children');
$this->db->where('site_menu_structures_links_children.site_menu_structures_links_id', $link->id);
$query = $this->db->get();
if ($query->num_rows() > 0)
{
$linksArray->{$key}->child_links = $query->result();
}
}
}
}
return $linksArray;
}发布于 2011-12-06 07:55:32
我的猜测是$linksArray是一个数组,而不是一个对象,所以这行
$linksArray->{$key}->child_links;
不会起作用。在任何情况下,这一行都不做任何事情,那么为什么要有它呢?
在为这个"property“赋值的地方,尝试这样做
$linksArray[$key]->child_links = $query->result();发布于 2011-12-06 07:55:31
“正在尝试获取非对象的属性”
仅当您尝试将变量视为对象实例,并且实际上无法成功创建该实例时,才会出现这种类型的错误。尝试检查这部分代码是否真的是对象:
$linksArray->{$key}->child_links这位于代码的底部。
https://stackoverflow.com/questions/8393570
复制相似问题