タグ付けされた質問 「eav」

Magentoのエンティティ属性値(EAV)の実装に関する質問

1
コレクションの `joinField`と` joinTable`の違いは何ですか?
このファイルapp/code/core/Mage/Eav/Model/Entity/Collection/Abstract.phpには、という名前の関数があり、joinField別の関数がありますjoinTable。 フィールドが実際にフラットテーブルの列である場合、それらを結合するとはどういう意味ですか?joinTable代わりにどのような状況で使用する必要がありますか?両方を交換して使用できますか?

2
バンドル製品のバンドルアイテムの属性もバンドル製品自体に保存されるのはなぜですか?(データベースごと)
最近、カテゴリページのレイヤードナビゲーションフィルターのオプションがどのように決定および取得されるかを調査していました。私はモデルとデータベースを少し掘り下げましたが、次のメカニズムがわかりません。 状況:たとえばcolor、(attribute_id = 133) という名前の属性、単純な製品A(entity_id = 26)、およびバンドルされた製品B(entity_id = 27)があり、そのバンドルアイテムとしてにA追加さBれMagento ver. 1.9.0.1ます。 ステップ1: color両方のために設定されていませんAし、B ステップ2: colorはBlack(value_id = 19)として設定されますB ステップ3:次のよう colorに設定されますWhite(value_id = 18)A 手順3から、バンドルアイテム(Aこの場合)の属性が、バンドル製品(Bこの場合)自体の属性であるかのように保存されていることがわかります。これが、バンドル製品のバンドルアイテムの属性がレイヤードナビゲーションフィルターにも表示される理由です。 なぜこのように設計されているのですか?なぜシステムは子製品の属性も親製品に保存するのですか?システムの特定のプロセスでどのように役立ちますか? 前もって感謝します。


1
Magentoが多すぎるテーブルエラーの一括更新製品
今朝、magentoで約100の製品を選択して有効にすると、このmysql too many tableエラーが発生しました 以下はログファイルの抜粋です a:5:{i:0;s:92:"SQLSTATE[HY000]: General error: 1116 Too many tables; MySQL can only use 61 tables in a join";i:1;s:5786:" #0 /var/www/html/dev.mysite.com/lib/Varien/Db/Statement/Pdo/Mysql.php(110): Zend_Db_Statement_Pdo->_execute(Array) このmysqlスレッド(http://forums.mysql.com/read.php?10,94448,94505#msg-94505 を通過)は、eav dbモデルに欠陥があることを示しています。 また、61テーブルを増やすと、また、eavモデルは最終的にこれを超えます。 magento eavモデルは完璧ではありませんか?それともカスタム属性が多すぎるためですか?(150以上のカスタム属性とセット) 私はこれに対処する方法は無意味です。 助けを求めて ありがとう

6
プログラムでeav製品属性を削除する方法
実用的にeavテーブルから商品属性を削除したい。顧客属性を削除するコードを取得していました。 このコードのように、商品属性を削除します。 <?php error_reporting(E_ALL | E_STRICT); $mageFilename = 'app/Mage.php'; require_once $mageFilename; Mage::setIsDeveloperMode(true); umask(0); Mage::app(); Mage::app()->setCurrentStore(Mage::getModel('core/store')->load(Mage_Core_Model_App::ADMIN_STORE_ID)); $setup = new Mage_Eav_Model_Entity_Setup('core_setup'); try { $custAttr = 'user_name'; // here enter your attribute name which you want to remove $setup->removeAttribute('customer', $custAttr); echo $custAttr." attribute is removed"; } catch (Mage_Core_Exception $e) { $this->_fault('data_invalid', $e->getMessage()); } …
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.