web-dev-qa-db-fra.com

Le menu getActive () renvoie "Essayer d'obtenir la propriété d'un non-objet" dans le composant de recherche

Pour identifier les pages, utilisez le code suivant

if($menu->getActive()->id == 203){} // some actions

cette ligne renvoie une erreur dans la page de recherche. URL de recherche va comme ça

http://localhost/joomla/component/search/?searchword=destination&searchphrase=all&Itemid=103

lorsque la page se charge, l'erreur suivante se produit "Essayer d'obtenir une propriété de non-objet".

3
aish

C'est parce que $ menu-> getActive () ne renvoie pas d'objet, et c'est parce qu'aucun élément de menu n'est utilisé pour la page de recherche.

Pour vous débarrasser de la notification php que vous voyez, vous pouvez d’abord vérifier si le $ menu-> getActive () est un objet et si oui, obtenir sa propriété id.

ainsi:

if ( is_object( $menu->getActive() ) ) { 
 //... 
}
5
FFrewin

Je pense que vous pourriez utiliser JInput pour obtenir le ItemId.

Essayez d'utiliser ce qui suit:

$jinput = JFactory::getApplication()->input;
$ItemId = $jinput->get('Itemid', '', 'INT');

if ($ItemId == 203)
{
    // Something here
}
2
Lodder