Magento:从网站名称获取网站ID


Magento: Get Website ID from Website Name

如标题所示。我不想要当前网站的ID,我想要任何网站的ID,只提供该网站的名称。

我有这样的代码:

$siteModel = Mage::getResourceModel( 'core/website_collection' )->addFieldToFilter( 'name', $site )->getFirstItem();
$siteId = $siteModel->getId();

$siteId最终为空。

如果我所有的是一个网站的名称,我怎么得到它的id ?

许多谢谢。

您需要通过->getSelect()->__toString()调试集合

用于检查是否给出正确的值。

    $siteModelCollection = Mage::getResourceModel( 'core/website_collection' )->addFieldToFilter( 'name', $site );
// print the Query
    echo $Query = $siteModelCollection ->getSelect()->__toString();
    echo $siteId =$siteModelCollection->getFirstItem()->getId();

更新:

使用load ():

对于这种情况,您需要调用core/websiteresource modelload()函数来获得正确的收集

现在你可以使用下面的代码获得第一个商店的id:

$siteModelCollection = Mage::getResourceModel('core/website_collection')->load()->addFieldToFilter( 'name', $site);
echo $Query = $siteModelCollection ->getSelect()->__toString();
echo $siteId =$siteModelCollection->getFirstItem()->getId();

您使用addFieldToFilter方法不正确。试试这个方法:

$website = Mage::getModel('core/website')
    ->getCollection()
    ->addFieldToFilter('name', array('eq', $siteName))
    ->getFirstItem();
$websiteId = $website->getId();