如标题所示。我不想要当前网站的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/website
的resource model
的load()
函数来获得正确的收集
现在你可以使用下面的代码获得第一个商店的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();