我試圖按國名查找國家代碼。因此,舉例來說,我有「荷蘭」,我需要得到「NL」Magento:按國名獲取國家代碼
我知道有方法來查找名稱形式代碼:
$country_name = Mage::app()->getLocale()->getCountryTranslation($country_code)
但我需要反之亦然。
那麼在Magento中有解決它的方法嗎?
我試圖按國名查找國家代碼。因此,舉例來說,我有「荷蘭」,我需要得到「NL」Magento:按國名獲取國家代碼
我知道有方法來查找名稱形式代碼:
$country_name = Mage::app()->getLocale()->getCountryTranslation($country_code)
但我需要反之亦然。
那麼在Magento中有解決它的方法嗎?
From the other question,這隻能通過國家徵收
$countryId = '';
$countryCollection = Mage::getModel('directory/country')->getCollection();
foreach ($countryCollection as $country) {
if ($countryName == $country->getName()) {
$countryId = $country->getCountryId();
break;
}
}
echo $countryId;
因爲數據是如何存儲在XML的循環做是沒有辦法過濾或負載的名字。
無需加載國家集合,只需通過語言環境訪問該XML:http:// stackoverflow.com/a/31876032/1939217 –
全國收集
<select title="Country" class="validate-select" id="billing:country_id" name="billing[country_id]">
<option value=""> </option>
<?php
$collection = Mage::getModel('directory/country')->getCollection();
foreach ($collection as $country)
{
?>
<option value="<?php echo $country->getId(); ?>"><?php echo $country->getName(); ?></option>
<?php
}
?>
</select>
有一種方式來獲得國家ID無負載的國家收藏。由於與名稱映射的所有國家/地區ID均以XML格式存儲,因此您可以通過語言環境對象訪問該XML。
$list = Mage::app()->getLocale()->getCountryTranslationList();
foreach ($list as $id => $name) {
if ($name == $countryName) {
return $id;
}
}
請注意國名應翻譯成當前語言環境語言。否則,改變區域設置必要的一個:
$oldCode = Mage::app()->getLocale()->getLocaleCode();
Mage::app()->getLocale()->setLocaleCode('en_US');
...
...
...
Mage::app()->getLocale()->setLocaleCode($oldCode);
這對我的作品 $list = Mage::app()->getLocale()->getCountryTranslationList(); $list=array_flip($list); echo $list['United States'];
的可能重複[Magento的 - 從名稱獲取國家的ID - 有沒有更簡單/更快的方法?(HTTP://計算器.com/questions/18786233/magento-get-country-id-name-is-there-a-easy-way-way) –