3
アップグレードスクリプトを実行する場合、現在のストアは1です
Mage::app()->getStore()アップグレードスクリプトを実行しているストアビューから独立したアップグレードスクリプト内で(管理者でも)ID 1のストアビューを返す理由は何ですか? つまり、これを行うコードがどこにあるかを知っています。これMage_Core_Model_App::getStore()には: if (!Mage::isInstalled() || $this->getUpdateMode()) { return $this->_getDefaultStore(); } そして_getDefaultStore次のようになります。 if (empty($this->_store)) { $this->_store = Mage::getModel('core/store') ->setId(self::DISTRO_STORE_ID) ->setCode(self::DISTRO_STORE_CODE); } return $this->_store; $this->_store 上記のメソッドに到達すると、常に空になります。 アップグレードスクリプトの先頭にこれを追加しても、同じ結果が得られます。 Mage::app()->setCurrentStore(Mage::getModel('core/store')->load(Mage_Core_Model_App::ADMIN_STORE_ID)); この「機能」を持つビジネスロジックに興味があります。