ここで最初に目にする問題は、特定のブランドの属性を選択しようとしているということです。属性には、実際にはブランドがありません (モデルリンもありません)。
ユースケースを明確にしていただけますか?ブランド 114 のすべての製品の modellijn (入力するのが楽しい) 値を取得しようとしていますか? 期待される出力は何ですか?
または、そのような方がよければ、どのような SQL クエリが生成されると期待できますか?
ありがとう、ジョセフ・マスティ
さて、あなたの更新に基づいて、いくつかのことを明確にしたかっただけです.
- 属性セットには属性があります
- 属性にはオプションがあります (場合によっては)
- 製品には属性値があります
- カテゴリには商品があります
特定の製品のモデルを見つける必要がある場合は、それを尋ねるだけです。単一の製品がある場合、これでうまくいくはずです。
$product = Mage::getModel("catalog/product")->load($id); // Magento does this for you in some cases
$product->getModellijn(); // this will return your value
$product->getAttributeText('modellijn'); // IIRC, this works for <select> type attributes
コレクションから商品をロードする場合、その属性もロードすることを Magento に伝える必要があります。EAV からすべてを選択すると、標準の正規化されたデータベースからすべてを選択するよりもさらにコストがかかります。したがって、Magento は、必要なものを伝えることを期待しています。
$collection = Mage::getModel("catalog/product")->getCollection();
$collection->addAttributeToFilter("brand", 114); // limit for brand
$collection->addAttributeToSelect("modellijn"); // * also works but is slow
foreach($collection as $product) {
$product->getModellijn(); // just as above
$product->getAttributeText('modellijn');
}
それがあなたのためにそれをするかどうか私に知らせてください。そうでない場合は、上記の投稿を修正して、より完全な SQL ステートメントを含めてください。可能であれば、このデータを使用している場所に関する詳細情報を追加してください。これは、コードを実行しているコンテキストを理解するのに役立ちます。