乔姆拉路由器问题



我有一个适用于addsmanager组件的代码,但他们进行了一些更改,现在不再起作用了。

旧代码是这样的:

function getAdsmanagerRouteContent($id)
{
$db =JFactory::getDBO();
$sql = "SELECT category,ad_manufacturers,ad_modelauto,ad_jetmodels,ad_model FROM #__adsmanager_ads WHERE id = ".(int)$id;
$db->setQuery($sql);
$result = $db->loadObject();
$url = TText::_($result->ad_manufacturers);
if ($result->ad_modelauto != "")  {
$url .= "-".TText::_($result->ad_modelauto );
}
if ($result->ad_jetmodels != "")  {
$url .= "-".TText::_($result->ad_jetmodels );
}
if ($result->ad_model != "")  {
$url .= "-".TText::_($result->ad_model );
}
$url = TTools::stringURLSafe($url );
$url = JString::substr($url ,0,30);
return $url ;
}

他们现在有这个代码

function getAdsmanagerRouteContent($id)
{
$db =JFactory::getDBO();
$sql = "SELECT ad_headline FROM #__adsmanager_ads WHERE id = ".(int)$id;
$db->setQuery($sql);
$result = $db->loadResult();
$result= TTools::stringURLSafe($result);
$result = JString::substr($result,0,30);
return $result;
}

我像这样修改过

function getAdsmanagerRouteModel($id)
{
$db =JFactory::getDBO();
$sql = "SELECT ad_model,ad_motomodel FROM #__adsmanager_ads WHERE id = ".(int)$id;
$db->setQuery($sql);
$result = $db->loadResult();
if ($result->ad_model != "")  {
$result .= "-".TText::_($result->ad_model );
}
if ($result->ad_motomodel != "")  {
$result .= "-".TText::_($result->ad_motomodel );
}   
$result= TTools::stringURLSafe($result);
$result = JString::substr($result,0,30);
return $result;
}

ad_model已加载,但如果ad_model ad_motomodel则不会加载。 有没有办法使这段代码工作?我不太擅长PHP。

您的代码最初是为使用两个不同的变量($result 和 $url(而编写的,但改用一个变量。

$result = $db->loadResult();
if ($result->ad_model != "")  {
$result .= "-".TText::_($result->ad_model );
}

一旦执行了第三行,您现在就不再$result对象了。它消失了。您现在有一个字符串$result其中包含先前对象的"字符串化"产生的任何内容(在本例中为空字符串(加上破折号和ad_model的内容。之后,您将无法再访问$result->ad_motomodel

真正想要的是这样的东西:

$db =JFactory::getDBO();
$sql = "SELECT ad_model,ad_motomodel FROM #__adsmanager_ads WHERE id = ".(int)$id;
$db->setQuery($sql);
$result = $db->loadResult();
$url="";
if ($result->ad_model != "")  {
$url .= "-".TText::_($result->ad_model );
}
if ($result->ad_motomodel != "")  {
$url .= "-".TText::_($result->ad_motomodel );
}   
$url = TTools::stringURLSafe($url);
$url = JString::substr($url,0,30);
return $url;

最新更新