코드에서 상점 ID를 얻는 방법


23

그래서 상점 코드가 있고 단순히 상점 ID를 원합니다. 이상적으로는 ID 만 필요하기 때문에 단순히 저장소를 완전히로드하고 싶지 않습니다.

내가 한 아이디어는 컬렉션을 통해 이것을로드하는 것이었지만 도우미 나 리소스를 통해 다른 방법이 있는지 궁금했습니다.


3
나를 위해 이것은 완벽하게 작동합니다 :Mage::app()->getStore($storeCode)->getId();
Hatef

답변:


10

이것을 테스트하지는 않았지만 loadConfig모델 의 메소드 를 사용하여 ID를 얻을 수 있다는 것을 기억합니다Mage_Core_Model_Store

그런 getId()다음 모델 을 호출하여 ID를 얻을 수 있습니다 .

loadConfig방법은로드 된 구성을 사용하여 상점 데이터를 검색합니다.

$store = Mage::getConfig()->getNode()->stores->{$code};

다음과 같은 값을 제공합니다.

  • 신분증
  • 암호
  • website_id

3
이상-나를 위해 (Magento 1.9.0.0) NULL을 반환합니다. 나를 위해 일한 것은Mage::getConfig()->getNode('stores')->{$code}
Doug McLean

또는 더 나은 : Mage :: getConfig ()-> getNode ( 'stores')-> {$ code}-> { 'system'}-> { 'store'}-> { 'id'};
anshuman

@dougMcLean은 EE 1.14.1.0에서 동일한 문제를 겪었습니다. "config"캐시가 활성화되면 나타납니다. 마 젠토 캐시 문제처럼 보입니다. Sander는 Mage :: getConfig ()-> getNode ( 'stores')-> {$ code}를 사용하여 답변을 편집하여 친절하게 사용할 수 있습니까?
Kate Suykovskaya

멀티 스토어를 가지고 있는데, 어떻게하면 매장 ID, 내 코드-> justpaste.it/6fi1f
Gem

21

Mage::getModel('core/store')->load($storeCode, 'code')->getId()

이것이 가장 간단한 방법이 아닙니까?


2
ID가 필요할 때 가장 간단하지만 사이트 성능이 전체 상점을로드하는 것이 가장 좋지 않을 수 있습니다.
David Manners

알겠습니다. 그런 다음 자원 모델에서 직접 SQL :)
Zifius

5

이것이 1.9.0.0 특유의 것인지 모르겠지만 아무것도 반환 할 수있는 ( Mage::getConfig()->getNode()->stores->{$code}또는 Mage::getModel('core/store')->loadConfig($code)실제로 는 호출 할 수 없음) 수 없습니다 Mage::getConfig()->getNode()->stores->{$code}.

첫 번째는 가깝습니다 ... 미묘한 형태의 변화로 결과는 얻지 만 필요한 것보다 더 많은 정보가 있습니다.

$store = Mage::getConfig()->getNode('stores')->{$code}

상점 ID를 얻기 위해 나를 위해 일한 것은 다음과 같습니다.

$storeId = Mage::getConfig()->getNode('stores')->{$code}->system->store->id;

물론 비효율적이지만, 하나의 작은 숫자에 대해서만 모든 구성 정보를로드합니다. 그러나, 그것은 당신을위한 Magento입니다.


4

다음이 작동해야합니다.

<?php echo Mage::getModel('core/store')->loadConfig($code)->getId(); ?>

답변 주셔서 감사합니다, 이것은 이전과 동일하게 보이지만 :)
David Manners

예, 답변을 게시 한 후 확인했습니다.
Mayers
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.