variable no funciona en where cláusula php joomla

Tengo la función y mi función funciona bien solo que no entiendo esto:

where('d.category_id = ' . (int) $category) // also this method not work ->where('d.category_id = ' . $category) // but this method works ->where('d.category_id = 23') ?> 

este es el código completo:

 $category = $params->get('title'); //echo $category; public static function getSuggested($category) { $db = JFactory::getDBO(); $query = $db->getQuery(true); //$now = $jdate->toSql(); //$nullDate = $db->quote($db->getNullDate()); $query->select('d.*'); $query->from('#__deals_deals AS d'); $query->select('c.title AS category_title'); $query->join('LEFT', '#__deals_categories AS c ON c.id = d.category_id') ->where('(d.is_market = 0 AND d.state = 1)','AND') ->where('d.category_id = 23') ->order('id DESC'); //$query->where('(d.publish_up = ' . $nullDate . ' OR d.publish_up quote($now) . ')'); //$query->where('(d.publish_down = ' . $nullDate . ' OR d.publish_down >= ' . $query->quote($now) . ')'); $db->setQuery($query,0,10); $results = $db->loadObjectList(); return $results; } 

esta función funciona bien solo necesita obtener datos de categoría. este es el módulo joomla, y esta función está en el archivo helper.php en el archivo default.php. Obtengo algunos datos de esta función.

Encontré solución:

Añadir en mod_suggested_deals.php

 $category = (int) $params->get('fieldvalue'); 

entonces:

 $results = modsuggested_dealsHelper::getSuggested($category); 

Encontré solución para esta pregunta:

en mi función I Agregar param $ category

 public static function getSuggested($category) {...} 

en mod_suggested_deals.php agrego el código:

 $category = $params->get('title'); 

entonces es código (ya estaba aquí).

 $results = modsuggested_dealsHelper::getSuggested($category); 

El error que estás cometiendo es que estás definiendo un valor de variable fuera de una función pero llamando a la variable dentro de ella. Si su clase no es de clase abstracta puede usar $this->category o si su clase es una clase abstracta, entonces use la variable $ category dentro de la función como esta

 public static function getSuggested() { $module = JModuleHelper::getModule('mod_yourmodulename'); $catid = new JRegistry($module->params); $category = (int) $catid['title']; $db = JFactory::getDBO(); $query = $db->getQuery(true); //$now = $jdate->toSql(); //$nullDate = $db->quote($db->getNullDate()); $query->select('d.*'); $query->from('#__deals_deals AS d'); $query->select('c.title AS category_title'); $query->join('LEFT', '#__deals_categories AS c ON c.id = d.category_id') ->where('(d.is_market = 0 AND d.state = 1)','AND') ->where('d.category_id = '.$category) ->order('id DESC'); //$query->where('(d.publish_up = ' . $nullDate . ' OR d.publish_up < = ' . $query->quote($now) . ')'); //$query->where('(d.publish_down = ' . $nullDate . ' OR d.publish_down >= ' . $query->quote($now) . ')'); $db->setQuery($query,0,10); $results = $db->loadObjectList(); return $results; }