我想绑定内容项表的id并链接菜单表。我需要按如下方式构建查询:
protected function getListQuery()
{
$url="index.php?option=com_content&view=article&id=";
// Create a new query object.
$db = JFactory::getDBO();
$query = $db->getQuery(true);
// select the items
$query->select('ar.id,ar.alias,ar.introtext,ar.images,ar.created,m.link,m.path');
// of content table and menu table
$query->from('#__content as ar, #__menu as m');
$query->where('m.link like '+$url+'ar.id');
$query->order('ar.id desc');
return $query;
}
查询返回0结果。我需要附加$url
参数和ar.id
以生成找到完整网址。
我希望您向我展示表格中的菜单项列表是否与参数相关联。 例如:
index.php?option=com_content&view=article&id=70
谢谢!
答案 0 :(得分:1)
使用Concat尝试
$query->where("m.link like CONCAT('%','$url',ar.id,'%') ");
答案 1 :(得分:0)
我是Joomla的新手,所以我只对3.8.6版本的Joomla很熟悉。
您的查询可能会受益于一些定位良好的引用方法。
(为清楚起见,使用逗号语法的JOIN是JOINs a.k.a. INNER JOINS。)
如果您的实际列数据由附加$url
的{{1}}完全表示,那么您不需要ar.id
字符串比较功能(因为您没有使用特殊字符: LIKE
或_
)。
%
是q()
的缩写 - 用于字符串值quote()
是qn()
的缩写 - 用于列/表名称建议/未经测试的代码:
quoteName()