Prestashop 1.6 > 获取所有标签或按名称获取标签
Prestashop 1.6 > Get all tags or get tag by name
我正在尝试从 prestashop 获取标签 ID,但 TagsCore 不提供所有标签的列表,也不包含按名称获取标签的方法?是否可以不以某种方式编写自定义函数?谢谢
在 TagCore 中,您有以下结构:
public function __construct($id = null, $name = null, $id_lang = null)
{
$this->def = Tag::getDefinition($this);
$this->setDefinitionRetrocompatibility();
if ($id) {
parent::__construct($id);
} elseif ($name && Validate::isGenericName($name) && $id_lang && Validate::isUnsignedId($id_lang)) {
$row = Db::getInstance(_PS_USE_SQL_SLAVE_)->getRow('
SELECT *
FROM `'._DB_PREFIX_.'tag` t
WHERE `name` = \''.pSQL($name).'\' AND `id_lang` = '.(int)$id_lang);
if ($row) {
$this->id = (int)$row['id_tag'];
$this->id_lang = (int)$row['id_lang'];
$this->name = $row['name'];
}
}
}
因此,如果您调用:
$tag = new Tag(null, "stringtag", $id_lang);
if($tag->id !== null){
// stringtag exists for that id_lang
}
但是没有办法获取所有标签的list/collection。但是像这样的简单查询:
Db::getInstance()->executeS('SELECT * FROM `'._DB_PREFIX_.'tag`')
或
Db::getInstance()->executeS('SELECT * FROM `'._DB_PREFIX_.'tag` WHERE `id_lang`='.$id_lang)
很简单,可以得到包含所有标签的数组。
我正在尝试从 prestashop 获取标签 ID,但 TagsCore 不提供所有标签的列表,也不包含按名称获取标签的方法?是否可以不以某种方式编写自定义函数?谢谢
在 TagCore 中,您有以下结构:
public function __construct($id = null, $name = null, $id_lang = null)
{
$this->def = Tag::getDefinition($this);
$this->setDefinitionRetrocompatibility();
if ($id) {
parent::__construct($id);
} elseif ($name && Validate::isGenericName($name) && $id_lang && Validate::isUnsignedId($id_lang)) {
$row = Db::getInstance(_PS_USE_SQL_SLAVE_)->getRow('
SELECT *
FROM `'._DB_PREFIX_.'tag` t
WHERE `name` = \''.pSQL($name).'\' AND `id_lang` = '.(int)$id_lang);
if ($row) {
$this->id = (int)$row['id_tag'];
$this->id_lang = (int)$row['id_lang'];
$this->name = $row['name'];
}
}
}
因此,如果您调用:
$tag = new Tag(null, "stringtag", $id_lang);
if($tag->id !== null){
// stringtag exists for that id_lang
}
但是没有办法获取所有标签的list/collection。但是像这样的简单查询:
Db::getInstance()->executeS('SELECT * FROM `'._DB_PREFIX_.'tag`')
或
Db::getInstance()->executeS('SELECT * FROM `'._DB_PREFIX_.'tag` WHERE `id_lang`='.$id_lang)
很简单,可以得到包含所有标签的数组。