Prestahop ストアに存在するすべての属性を取得する必要があります。どの製品が割り当てられているかに関係なく、これらの属性の配列を生成して、ProductController.php クラスで使用したいだけです。ファイル classes/Product.php を確認すると、getDefaultAttribute($id_product, $minimumQuantity = 0) というメソッドが存在しますが、これは特定の製品に割り当てられた属性に対してのみ機能し、必要に応じてすべてを返すわけではないと思います。何か助けはありますか?私は Prestashop の初心者で、多くのことを学ぶ必要があります
6801 次
2 に答える
4
ファイルを調べますclasses/Attribute.php
。static function を使用できますAttribute::getAttributes($id_lang, $not_null = false)
。特定の言語のすべての属性を返します。
于 2012-10-16T17:07:43.077 に答える
0
次の SQL クエリを使用して、すべての属性を取得できます。
$atbt = "SELECT a.id_attribute_group , a.name
FROM " . _DB_PREFIX_ . "attribute_group_lang a
where id_lang='".$id_lang."'";
$res = Db::getInstance()->ExecuteS($atbt);
$product_result = array();
$i=0;
foreach ($res as $key => $row) {
$sql = 'SELECT pal.name AS label,pal.id_attribute AS value,0 AS status'
. ' FROM ' . _DB_PREFIX_ . 'attribute AS pa
RIGHT JOIN ' . _DB_PREFIX_ . 'attribute_group_lang AS pagl ON (pagl.id_attribute_group =pa.id_attribute_group)
LEFT JOIN ' . _DB_PREFIX_ . 'attribute_lang AS pal ON (pal.id_attribute =pa.id_attribute)
JOIN ' . _DB_PREFIX_ . 'product_attribute_combination AS pacl ON (pacl.id_attribute =pal.id_attribute)
JOIN ' . _DB_PREFIX_ . 'product_attribute AS pat ON (pat.id_product_attribute =pacl.id_product_attribute)
JOIN ' . _DB_PREFIX_ . 'product AS prot ON (prot.id_product =pat.id_product)
WHERE pagl.id_lang="'.$id_lang.'" AND pal.id_lang="'.$id_lang.'" AND pagl.id_attribute_group=' . $row['id_attribute_group'].' AND prot.id_category_default = "'.$id_category.'" GROUP BY pacl.id_attribute';
$result = Db::getInstance()->ExecuteS($sql);
}
于 2016-11-16T11:55:18.957 に答える