本文整理汇总了PHP中Magento\Catalog\Model\Product::getCategoryId方法的典型用法代码示例。如果您正苦于以下问题:PHP Product::getCategoryId方法的具体用法?PHP Product::getCategoryId怎么用?PHP Product::getCategoryId使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类Magento\Catalog\Model\Product
的用法示例。
在下文中一共展示了Product::getCategoryId方法的7个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的PHP代码示例。
示例1: getUrl
/**
* The only rewritten line in this method is the return statement
*/
public function getUrl(\Magento\Catalog\Model\Product $product, $params = [])
{
$routePath = '';
$routeParams = $params;
$storeId = $product->getStoreId();
$categoryId = null;
if (!isset($params['_ignore_category']) && $product->getCategoryId() && !$product->getDoNotUseCategoryId()) {
$categoryId = $product->getCategoryId();
}
if ($product->hasUrlDataObject()) {
$requestPath = $product->getUrlDataObject()->getUrlRewrite();
$routeParams['_scope'] = $product->getUrlDataObject()->getStoreId();
} else {
$requestPath = $product->getRequestPath();
if (empty($requestPath) && $requestPath !== false) {
$filterData = [UrlRewrite::ENTITY_ID => $product->getId(), UrlRewrite::ENTITY_TYPE => \Magento\CatalogUrlRewrite\Model\ProductUrlRewriteGenerator::ENTITY_TYPE, UrlRewrite::STORE_ID => $storeId];
if ($categoryId) {
$filterData[UrlRewrite::METADATA]['category_id'] = $categoryId;
}
$rewrite = $this->urlFinder->findOneByData($filterData);
if ($rewrite) {
$requestPath = $rewrite->getRequestPath();
$product->setRequestPath($requestPath);
} else {
$product->setRequestPath(false);
}
}
}
if (isset($routeParams['_scope'])) {
$storeId = $this->storeManager->getStore($routeParams['_scope'])->getId();
}
if ($storeId != $this->storeManager->getStore()->getId()) {
$routeParams['_scope_to_url'] = true;
}
if (!empty($requestPath)) {
$routeParams['_direct'] = $requestPath;
} else {
$routePath = 'catalog/product/view';
$routeParams['id'] = $product->getId();
$routeParams['s'] = $product->getUrlKey();
if ($categoryId) {
$routeParams['category'] = $categoryId;
}
}
// reset cached URL instance GET query params
if (!isset($routeParams['_query'])) {
$routeParams['_query'] = [];
}
/*
* This is the only line changed from the default method.
* For reference, the original line: $this->getUrlInstance()->setScope($storeId)->getUrl($routePath, $routeParams);
* getUrlInstance() is a private method, so a new method has been written that will create a frontend Url object if
* the store scope is not the admin scope.
*/
return $this->getStoreScopeUrlInstance($storeId)->getUrl($routePath, $routeParams);
}
示例2: testGetCategoryId
public function testGetCategoryId()
{
$this->assertFalse($this->_model->getCategoryId());
$category = new \Magento\Framework\DataObject(['id' => 5]);
$this->objectManager->get('Magento\\Framework\\Registry')->register('current_category', $category);
try {
$this->assertEquals(5, $this->_model->getCategoryId());
$this->objectManager->get('Magento\\Framework\\Registry')->unregister('current_category');
} catch (\Exception $e) {
$this->objectManager->get('Magento\\Framework\\Registry')->unregister('current_category');
throw $e;
}
}
示例3: testGetCategoryId
public function testGetCategoryId()
{
$this->assertFalse($this->_model->getCategoryId());
$category = new \Magento\Framework\Object(['id' => 5]);
/** @var $objectManager \Magento\TestFramework\ObjectManager */
$objectManager = \Magento\TestFramework\Helper\Bootstrap::getObjectManager();
$objectManager->get('Magento\\Framework\\Registry')->register('current_category', $category);
try {
$this->assertEquals(5, $this->_model->getCategoryId());
$objectManager->get('Magento\\Framework\\Registry')->unregister('current_category');
} catch (\Exception $e) {
$objectManager->get('Magento\\Framework\\Registry')->unregister('current_category');
throw $e;
}
}
示例4: testGetCategoryId
public function testGetCategoryId()
{
$this->category->expects($this->once())->method('getId')->will($this->returnValue(10));
$this->registry->expects($this->at(0))->method('registry');
$this->registry->expects($this->at(1))->method('registry')->will($this->returnValue($this->category));
$this->assertFalse($this->model->getCategoryId());
$this->assertEquals(10, $this->model->getCategoryId());
}
示例5: getUrl
/**
* Retrieve Product URL using UrlDataObject
*
* @param \Magento\Catalog\Model\Product $product
* @param array $params
* @return string
*/
public function getUrl(\Magento\Catalog\Model\Product $product, $params = array())
{
$routePath = '';
$routeParams = $params;
$storeId = $product->getStoreId();
if (isset($params['_ignore_category'])) {
unset($params['_ignore_category']);
$categoryId = null;
} else {
$categoryId = $product->getCategoryId() && !$product->getDoNotUseCategoryId() ? $product->getCategoryId() : null;
}
if ($product->hasUrlDataObject()) {
$requestPath = $product->getUrlDataObject()->getUrlRewrite();
$routeParams['_scope'] = $product->getUrlDataObject()->getStoreId();
} else {
$requestPath = $product->getRequestPath();
if (empty($requestPath) && $requestPath !== false) {
$idPath = sprintf('product/%d', $product->getEntityId());
if ($categoryId) {
$idPath = sprintf('%s/%d', $idPath, $categoryId);
}
$rewrite = $this->getUrlRewrite();
$rewrite->setStoreId($storeId)->loadByIdPath($idPath);
if ($rewrite->getId()) {
$requestPath = $rewrite->getRequestPath();
$product->setRequestPath($requestPath);
} else {
$product->setRequestPath(false);
}
}
}
if (isset($routeParams['_scope'])) {
$storeId = $this->_storeManager->getStore($routeParams['_scope'])->getId();
}
if ($storeId != $this->_storeManager->getStore()->getId()) {
$routeParams['_scope_to_url'] = true;
}
if (!empty($requestPath)) {
$routeParams['_direct'] = $requestPath;
} else {
$routePath = 'catalog/product/view';
$routeParams['id'] = $product->getId();
$routeParams['s'] = $product->getUrlKey();
if ($categoryId) {
$routeParams['category'] = $categoryId;
}
}
// reset cached URL instance GET query params
if (!isset($routeParams['_query'])) {
$routeParams['_query'] = array();
}
return $this->getUrlInstance()->setScope($storeId)->getUrl($routePath, $routeParams);
}
示例6: getUrl
/**
* Retrieve Product URL using UrlDataObject
*
* @param \Magento\Catalog\Model\Product $product
* @param array $params
* @return string
* @SuppressWarnings(PHPMD.CyclomaticComplexity)
* @SuppressWarnings(PHPMD.NPathComplexity)
*/
public function getUrl(\Magento\Catalog\Model\Product $product, $params = [])
{
$routePath = '';
$routeParams = $params;
$storeId = $product->getStoreId();
if (isset($params['_ignore_category'])) {
unset($params['_ignore_category']);
$categoryId = null;
} else {
$categoryId = $product->getCategoryId() && !$product->getDoNotUseCategoryId() ? $product->getCategoryId() : null;
}
if ($product->hasUrlDataObject()) {
$requestPath = $product->getUrlDataObject()->getUrlRewrite();
$routeParams['_scope'] = $product->getUrlDataObject()->getStoreId();
} else {
$requestPath = $product->getRequestPath();
if (empty($requestPath) && $requestPath !== false) {
$filterData = [UrlRewrite::ENTITY_ID => $product->getId(), UrlRewrite::ENTITY_TYPE => \Magento\CatalogUrlRewrite\Model\ProductUrlRewriteGenerator::ENTITY_TYPE, UrlRewrite::STORE_ID => $storeId];
if ($categoryId) {
$filterData[UrlRewrite::METADATA]['category_id'] = $categoryId;
}
$rewrite = $this->urlFinder->findOneByData($filterData);
if ($rewrite) {
$requestPath = $rewrite->getRequestPath();
$product->setRequestPath($requestPath);
} else {
$product->setRequestPath(false);
}
}
}
if (isset($routeParams['_scope'])) {
$storeId = $this->_storeManager->getStore($routeParams['_scope'])->getId();
}
if ($storeId != $this->_storeManager->getStore()->getId()) {
$routeParams['_scope_to_url'] = true;
}
if (!empty($requestPath)) {
$routeParams['_direct'] = $requestPath;
} else {
$routePath = 'catalog/product/view';
$routeParams['id'] = $product->getId();
$routeParams['s'] = $product->getUrlKey();
if ($categoryId) {
$routeParams['category'] = $categoryId;
}
}
// reset cached URL instance GET query params
if (!isset($routeParams['_query'])) {
$routeParams['_query'] = [];
}
return $this->getUrlInstance()->setScope($storeId)->getUrl($routePath, $routeParams);
}
示例7: getCategoryId
/**
* {@inheritdoc}
*/
public function getCategoryId()
{
$pluginInfo = $this->pluginList->getNext($this->subjectType, 'getCategoryId');
if (!$pluginInfo) {
return parent::getCategoryId();
} else {
return $this->___callPlugins('getCategoryId', func_get_args(), $pluginInfo);
}
}