Собственность необъекта - PullRequest
0 голосов
/ 06 декабря 2011

Я пытаюсь выяснить, почему я пытаюсь получить свойство необъекта.Я не совсем разбираюсь в объектах и ​​массивах, но я пытаюсь.Вот код и сообщение об ошибке.Любые идеи о том, как решить эту проблему?

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;

}

Ответы [ 2 ]

3 голосов
/ 06 декабря 2011

Я думаю, $linksArray - это массив, а не объект, поэтому строка

$ linksArray -> {$ ключ} -> child_links;

не будет работать. В любом случае эта строка ничего не делает, так зачем вообще ее иметь?

Если вы присваиваете значение этому «свойству», попробуйте вместо этого

$linksArray[$key]->child_links = $query->result();
0 голосов
/ 06 декабря 2011

«Попытка получить свойство необъекта»

этот тип ошибок существует только в том случае, если вы пытаетесь обработать переменную как экземпляр объекта, и вам фактически не удалось создать этот экземпляр, при попытке проверить эту частькода, если это действительно объект или нет:

$linksArray->{$key}->child_links

это внизу вашего кода.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...