Ik heb iets heel merkwaardigs. Ik gebruik de volgende functie voor het genereren van mijn navigatie:

public function get_menu($lang) 
{
    $sql = "SELECT *
	          FROM pages
             WHERE parent_id = 0
			   AND language_abbr      = ?
          ORDER BY page_sequence";

				  
    $stmt = $this->pdo->prepare($sql);
    $stmt->execute(array($lang));
		
	return $stmt->fetchAll();
}

Via de Controller wordt het resultaat naar de View (header.php) gestuurd. Tot zover alles prima. Het menu wordt gewoon weergegeven zonder enige fout. Als ik echter in header.php de volgende if statement gebruik:

if ($main_menu['page_class']  ==  'info' || $main_menu['page_class']  ==  'company')
{ 
	$class	=	'dropdown';
}
else
{
	$class	= '';	
}

Krijg ik de foutmelding:

Undefined Index page_class


Terwijl als ik in de source kijk page_class wel gewoon werkt op de anchors. Waar kan dit door komen?

Alvast bedankt
Waar komt $main_menu vandaan?
fetchAll() geeft een geneste array, bijvoorbeeld:


Array
(
    [0] => Array
        (
            [name] => apple
            [0] => apple
            [colour] => red
            [1] => red
        )

    [1] => Array
        (
            [name] => pear
            [0] => pear
            [colour] => green
            [1] => green
        )

    [2] => Array
        (
            [name] => watermelon
            [0] => watermelon
            [colour] => pink
            [1] => pink
        )
)


Het eerste niveau is een geïndexeerde array met een integer voor alle geselecteerde rijen (0, 1, 2, enzovoort). De kolom die jij zoekt, staat op het tweede niveau.
@ - SanThe -

Dit staat in de Controller:

$main_menu	   =  $this->page->get_menu($this->lang);

en die wordt dus naar de View gestuurd

@ Ward van der Put

....en hoe los ik dat op. Sorry voor mijn onwetendheid
Je kunt bijvoorbeeld één voor één alle menu-items langslopen:

<?php
foreach ($main_menu as $menu_item) {
    // Hier bestaat de index 'page_class' wel, maar dan als eigenschap
    // van elk menu-item, niet als eigenschap van het gehele menu.
    echo $menu_item['page_class'];
}
?>

Reageren