Object
/**
* @param $className
* @return mixed
*/
public function getObject($className)
{
return \Magento\Framework\App\ObjectManager::getInstance()->get($className);
}
/**
* @param $className
* @return mixed
*/
public function createObject($className)
{
return \Magento\Framework\App\ObjectManager::getInstance()->create($className);
}
Url
/**
* Generate url by route and parameters
*
* @param string $route
* @param array $params
* @return string
*/
public function getUrl($route = '', $params = [])
{
return $this->urlManager->getUrl($route, $params);
}
/**
* @return string
*/
public function getRefer()
{
return $this->urlEncoder->encode($this->urlManager->getCurrentUrl());
}
/**
* @return string
*/
public function decodeUrl($refer)
{
return $this->urlDecoder->decode($refer);
}
注:
urlManager —> \Magento\Framework\UrlInterface
urlEncoder -> \Magento\Framework\Url\EncoderInterface
urlDecoder -> \Magento\Framework\Url\DecoderInterface
Product object
$product = \Magento\Framework\App\ObjectManager::getInstance()->create('Magento\Catalog\Model\Product')->load($productId); // by id
$product = \Magento\Framework\App\ObjectManager::getInstance()->create('Magento\Catalog\Api\ProductRepositoryInterface')->get($sku); // by sku
Product custom attribute and attribute label
// attribute
$product = \Magento\Framework\App\ObjectManager::getInstance()->create('Magento\Catalog\Model\Product')->load($productId);
$attribute = $product->getData($attributeName);
// attribute label
$attributeLabel = $product->getAttributeText($attributeName);
// or
$attributeLabel = $product->getResource()->getAttribute($attributeName)->getFrontend()->getValue($product);
Categories
$objectManger = \Magento\Framework\App\ObjectManager::getInstance();
$categoryHelper = $objectManger->create('Magento\Catalog\Helper\Category');
$categories = $categoryHelper->getStoreCategories($sorted = false, $asCollection = false, $toLoad = true);
$menus = array();
foreach ($categories as $category){
$sub = array();
$sub['name'] = $category->getName();
$sub['link'] = $categoryHelper->getCategoryUrl($category);
$menus[] = $sub;
}
Category custom attribute
$objectManger = \Magento\Framework\App\ObjectManager::getInstance();
$categoryModel = $objectManger->get('Magento\Catalog\Model\Category')->load($categoryId);
$attribute = $categoryModel->getData('attribute_name');
Logo and Copyright
// Logo
$objectManger = \Magento\Framework\App\ObjectManager::getInstance();
$logoObject = $objectManger->create('Magento\Theme\Block\Html\Header\Logo');
$logo = $logoObject->getLogoSrc();
// Copyright
$footer = $objectManger->create('Magento\Theme\Block\Html\Footer');
$copyright = $footer->getCopyright();
Format price
$objectManager = \Magento\Framework\App\ObjectManager::getInstance();
$priceHelper = $objectManager->create('Magento\Framework\Pricing\Helper\Data');
$price = 998;
$formattedPrice = $priceHelper->currency($price, true, false); // eg:EGP998.00
注: 已convert价格
$priceHelper = $objectManager->get('Magento\Framework\Pricing\PriceCurrencyInterface');
$formatPrice = $priceHelper->format($price);
注: 未convert价格
Resize product image
/**
* Resize product image
*
* @param $imageFile
* @param $size
* @return mixed
*/
public function resizeProductImage($imageFile, $size)
{
$imageObj = $objectManager->get("Magento\Catalog\Model\Product\Image");
$imageObj->setDestinationSubdir("image");
$imageObj->setSize($size);
$imageObj->setBaseFile($imageFile);
if (!$imageObj->isCached()) {
$imageObj->resize();
$imageObj->saveFile();
}
return $imageObj->getUrl();
}
Customer session
/**
* Return customer session model
*
* @return mixed
*/
public function getCustomerSession()
{
return \Magento\Framework\App\ObjectManager::getInstance()->get('Magento\Customer\Model\Session');
}
Get params
$params = $this->_request->getParams();
$param = $this->_request->getParam($key);
用户验证
$authentication = $objectManager->get("Magento\Customer\Model\Authentication");
$customerId = $this->getCustomerSession()->getCustomer()->getId();
$currentPassword = $this->_request->getParam('current_password');
$checkResult = $authentication->authenticate($customerId, $currentPassword); // 返回值为 ture/false
自定义前缀 (Custom prefix of order/invoice/shipment/creditmemo)
UPDATE sales_sequence_profile SET prefix = 'order-' WHERE meta_id in (SELECT meta_id FROM sales_sequence_meta
WHERE entity_type='order' AND store_id !=0);
UPDATE sales_sequence_profile SET prefix = 'invoice-' WHERE meta_id in (SELECT meta_id FROM sales_sequence_meta
WHERE entity_type='invoice' AND store_id !=0);
UPDATE sales_sequence_profile SET prefix = 'shipment-' WHERE meta_id in (SELECT meta_id FROM sales_sequence_meta
WHERE entity_type='shipment' AND store_id !=0);
UPDATE sales_sequence_profile SET prefix = 'creditmemo-' WHERE meta_id in (SELECT meta_id FROM
sales_sequence_meta WHERE entity_type='creditmemo' AND store_id !=0);
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。