变量在php joomla子句中不起作用



我有功能,我的功能效果很好,只有我不明白:

<?php
// $category output is 23 when I echo $category; and there is no records
->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')
?>

这是完整的代码:

$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 <= ' . $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;
}

此功能可以奏效,只需获取类别数据即可。这是Joomla模块,此函数在default.php文件中的helper.php文件中,我从此函数中获取了一些数据。

我找到了解决方案:

添加mod_suggested_deals.php

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

然后:

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

我为这个问题找到了Soluton:

在我的功能中,我添加param $类别

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

在mod_suggested_deals.php中,我添加代码:

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

然后是代码(已经在这里)。

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

您正在做的错误是您在函数之外定义一个变量值,但会调用其内部的变量。如果您的类不是抽象类,则可以使用$this->category或类是抽象类,然后使用$类别变量,例如此

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;
}

最新更新