Cách lấy id cửa hàng từ mã


23

Vì vậy, tôi có mã cửa hàng và tôi thực sự muốn đơn giản là id cửa hàng. Lý tưởng nhất là tôi không muốn tải hoàn toàn cửa hàng vì tôi chỉ cần id.

Một ý tưởng tôi đã có là tải cái này qua một bộ sưu tập nhưng tôi tự hỏi liệu có cách nào khác thông qua một người trợ giúp hoặc tài nguyên không.


3
Đối với tôi điều này hoạt động hoàn hảo:Mage::app()->getStore($storeCode)->getId();
Hatef 24/07/2015

Câu trả lời:


10

Chưa thử nghiệm điều này nhưng tôi dường như nhớ rằng bạn có thể lấy ID bằng cách sử dụng phương thức loadConfigtrong mô hìnhMage_Core_Model_Store

Sau đó, bạn có thể nhận được ID bằng cách gọi getId()trên mô hình.

Các loadConfigphương pháp sử dụng cấu hình được nạp để lấy dữ liệu lưu trữ

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

Cung cấp cho bạn các giá trị sau

  • ID
  • trang web_id

3
Lạ - đối với tôi (Magento 1.9.0.0), điều này trả về NULL. Những gì làm việc cho tôi làMage::getConfig()->getNode('stores')->{$code}
Doug McLean

Hoặc thậm chí tốt hơn: Mage :: getConfig () -> getNode ('store') -> {$ code} -> {'system'} -> {'store'} -> {'id'};
anshuman

@dougMcLean gặp vấn đề tương tự trên EE 1.14.1.0, điều này xuất hiện khi bật bộ đệm "cấu hình" - giống như sự cố bộ đệm Magento. Sander bạn sẽ rất tử tế khi chỉnh sửa câu trả lời của mình bằng Mage :: getConfig () -> getNode ('store') -> {$ code}, vì vậy giải pháp hoạt động cho cả trường hợp bộ nhớ cache được bật / tắt?
Kate Suykovskaya

Tôi có nhiều trang, làm cách nào tôi có thể hiển thị các sản phẩm cửa hàng đã chọn bằng cách sử dụng id cửa hàng, mã của tôi -> justpaste.it/6fi1f
Gem

21

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

Đây không phải là cách đơn giản nhất để làm sao?


2
Nó có thể đơn giản nhất nhưng có thể không phải là tốt nhất cho hiệu suất trang web để tải toàn bộ cửa hàng khi tôi chỉ cần id.
David Manners

Ok, có ý nghĩa. Sau đó, SQL trực tiếp trong một mô hình tài nguyên :)
Zifius

5

Tôi không biết đây có phải là thứ gì đó đặc biệt so với 1.9.0.0 hay không nhưng tôi không thể nhận được Mage::getConfig()->getNode()->stores->{$code}hoặc Mage::getModel('core/store')->loadConfig($code)(trong thực tế gọi là Mage::getConfig()->getNode()->stores->{$code} ) để trả lại bất cứ thứ gì.

Đầu tiên là gần ... với một sự thay đổi tinh tế trong hình thức, điều này mang lại một kết quả, mặc dù đó là nhiều thông tin hơn bạn cần:

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

Điều làm việc cho tôi, để chỉ lấy id cửa hàng, là đây:

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

... Tất nhiên, vẫn không hiệu quả, tải tất cả thông tin cấu hình đó chỉ với một số nhỏ. Nhưng này, đó là Magento dành cho bạn.


4

Sau đây nên làm việc:

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

Cảm ơn câu trả lời, mặc dù điều này có vẻ giống với câu trả lời trước đó :)
David Manners

Vâng, nhận thấy nó sau khi tôi đăng phản hồi của mình :)
Mayers
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.