Questions tagged «magento2»

有关Magento 2的一般问题,不专门针对次要版本。使用此标签可以区分Magento1。如果您对特定版本有疑问,请改用相应的“ Magento-2.x”标签。Magento 2次要版本之间的功能可能有所不同。

3
Magento2:如何处理zip文件
我需要能够以编程方式处理zip文件。 在magento 1.9中,我正在做: $zip = new ZipArchive(); if ($zip->open($Zippath) === TRUE) { $zip->addFile($Filepath, $Filename); $zip->addFile($FilepathL, "toto.txt"); $zip->close(); return TRUE; } 我如何在magento 2中做同样的事情?
8 magento2  zip 

3
Magento 2:从集合查询中选择字段
我有以下查询。我只想从表中选择1个字段,而不是全部。 $collection = $this->_collectionFactory->addFieldToFilter('status', 0)->load(); //$collection->getSelect()->column('id'); //$collection->getSelect()->from(['main_table' => $this->getMainTable()], array('main_table.id')); echo $collectionBallotSelect->getSelect()->__toString(); exit; 我只想id从表中选择字段。

1
获取当前订单ID magento 2
我知道如何通过此代码检索上一个订单ID, $this->_checkoutSession->getQuote()->getReservedOrderId(); 通过注入获得_checkoutSession的地方, \Magento\Checkout\Model\Session $checkoutSession 我想知道如何在magento 2中获取当前的订单ID。

5
Magento 2:如何从API返回JSON对象?
我正在尝试从我的一个REST模型中返回一个JSON对象,如下所示: { "settings": { "set1" : 2, "set2" : "key1" }, "extra": { "e1'" : { "e2'": true } } } 但是,看似琐碎的事情并不容易实现。问题是我不确定接口和模型中的返回类型应该是什么。 <?php namespace AppFactory\Core\Api; /** * @api */ interface SettingsInterface { /** * @return object */ public function get(); } 对象类将返回 { "message": "Class object does not exist", 调用API时。可用的原始类型int,number和array对我不起作用。我不想为每个返回的复杂类型都创建一个类。我怎样才能做到这一点? …


1
什么是静态测试检查?
构建模块后,我尝试运行bin/magento dev:tests:run static。 这报告了我的代码的一些问题,但是我不确定在运行此测试时究竟要检查什么。 官方文件说 静态代码分析检查PHP代码是否符合Magento 2编码标准和最佳实践。它们通常在使用bin / magento工具进行持续集成期间执行。 但这并不意味着什么。 到目前为止,我发现的是。 存在 composer.json 存在 README.md 存在 licence.txt 构造函数参数的顺序与参数的父顺序匹配。 还有什么?

2
在magento2中禁用整个购物车功能和结帐
从管理员的角度来看,我可以禁用一步结帐,但是用户仍然可以将产品添加到购物车。我只想显示未结帐的产品。那里有分机吗?我的意思是禁用迷你购物车,添加到购物车链接整个网站。 我在哪里可以通过插件或观察者进行自定义,或者可以重写(主要是单次执行),以便在任何地方都隐藏添加到购物车的链接。通过编辑list.phtml我可以做到。但是还有更好的方法吗?

2
di.xml常量类型vs init_parameter
我di.xml从核心文件中看到,某些参数具有类型,init_parameter但是参数的值都是常数。 <type name="Magento\Framework\View\Page\Config\Renderer"> <arguments> <argument name="appMode" xsi:type="init_parameter">Magento\Framework\App\State::PARAM_MODE</argument> </arguments> </type> 或这个 <type name="Magento\Framework\App\Cache\State"> <arguments> <argument name="banAll" xsi:type="init_parameter">Magento\Framework\App\Cache\State::PARAM_BAN_CACHE</argument> </arguments> </type> 还有很多其他 但是从我在与关联的解释器中看到的内容来看init_parameter,使用了常量解释器Magento\Framework\App\Arguments\ArgumentInterpreter::evaluate public function evaluate(array $data) { return ['argument' => $this->constInterpreter->evaluate($data)]; } 但是结果与 Magento\Framework\Data\Argument\Interpreter\Constant::evaluate public function evaluate(array $data) { if (!isset($data['value']) || !defined($data['value'])) { throw new \InvalidArgumentException('Constant name is expected.'); } return …
8 magento2  di 

2
Magento 2:以不同方式获取集合的字段
我在Magento 2中有这个辅助课程: class Data extends \Magento\Framework\App\Helper\AbstractHelper { protected $_countryFactory; public function __construct( \Magento\Directory\Model\CountryFactory $countryFactory ) { $this->_countryFactory = $countryFactory; } public function getCountryIsoCode($country = 'US') { $country = $this->_countryFactory->create()->getCollection(); $country->addFieldToFilter('country_id', array('eq' => country)); $countryCode = $country->getFirstItem()->getIso3Code()); $countryCode2 = $country->getFirstItem()->getData('iso3_code')); // $countryCode => null // $countryCode2 => 'USA' return $countryCode; } …

2
Magento 2:事件观察者异常不在屏幕上显示
在自定义扩展中,我这样创建观察者。 app\code\Vendor\Extension\etc\frontend\events.xml <?xml version="1.0"?> <config xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="urn:magento:framework:Event/etc/events.xsd"> <event name="sales_quote_remove_item"> <observer name="sales_quote_remove_item_handler" instance="Vendor\Extension\Observer\RemovecartbeforeObserver" shared="false" /> </event> </config> 和我的观察者: app\code\Vendor\Extension\Observer\RemovecartbeforeObserver.php use Magento\Framework\Event\ObserverInterface; class RemovecartbeforeObserver implements ObserverInterface { public function execute(\Magento\Framework\Event\Observer $observer) { // HERE IS MY CODE $message = "THIS IS CUSTOM ERROR MESSAGE"; throw new \Magento\Framework\Exception\LocalizedException(__($message)); return; } } 调用了我的Observer函数,但是它没有在页面上显示自定义错误。对此,它会在exception.log文件中显示我的消息。 main.CRITICAL: …


2
如何在首页Magento 2上显示色板
我有两个产品滑块 (基于\Magento\Catalog\Block\Product\Widget\NewWidget)在我的首页上。 我想将色板添加到这些产品滑块。 滑块添加到我的homepage.xml布局中,如下所示: <container name="items.wrapper.slider" after="full.width.white.bar" htmlTag="div" htmlClass="wrapper wrapper--large c-catalog__products--slider-wrapper"> <block class="Silvan\TestExtension\Block\Product\Widget\NewWidget" template="Magento_Catalog::product/widget/new/content/new_grid.phtml" name="new.products"> <block class="Magento\Swatches\Block\Product\Renderer\Listing\Configurable" as="new.products.swatches" template="Magento_Swatches::product/listing/renderer.phtml" /> </block> </container> 我试图通过添加带有类的块来添加色板,Magento\Swatches\Block\Product\Renderer\Listing\Configurable但这不能按预期工作。 有人知道如何在首页中实现这一目标吗? 谢谢。

1
自定义Magento 2主导航(topmenu)javaScript
我花了很多时间研究主题模块和空白模板,以尝试更改Magento2的主要导航。到目前为止,我已经制作了一个自定义模块来控制呈现到页面中的内容(向subnav添加链接),但是我无法确定导航菜单javaScript的位置。 我可以在空白模板中看到一个navigation.menu.js文件,在主题模块中看到了menu.js,但是这些似乎都不是主菜单,而且找不到其他地方可以找到JS。 因为该块是由XML生成的,并且导航似乎在jQuery UI上运行,所以我没有太多可以用来搜索的内容。到目前为止,我主要是通过搜索供应商目录来修改基于基础模板构建的自定义模板,但是我还是空白。 我正在运行Magento 2.1,并在基础模板的基础上构建了自定义模板,如果有人可以向我指出正确的方向,那将是很大的帮助。 编辑1: 因此,经过更多的谷歌搜索和测试之后,我终于在lib / web / mage中找到了第二个menu.js文件,这似乎是正确的位置,但是现在我无法覆盖它。 有了我的新信息,我实际上偶然发现了Magento2开发文档,其中有一个覆盖菜单和管理菜单的示例。所以我在模块中添加了以下内容 命名空间/模块/视图/前端/require-config.js var config = { map: { '*': { 'menu': 'Test_Topmenu/js/navigation-menu' } } }; 命名空间/模块/视图/前端/web/js/navigation-menu.js define([ 'jquery', 'jquery/ui', 'mage/menu' ], function ($) { "use strict"; $.widget('Test_Topmenu.navigationMenu', $.mage.menu, { _init: function () { console.log('new init'); } }); return …

2
Magento 2提供了一种更快的方式以编程方式更改产品媒体库条目
我需要对产品数据进行大量更新,但是产品导入无法实现我需要做的事情。例如,我需要更新给定产品的媒体库和类别,但是我提出的解决方案花费的时间太长。 简要回顾一下:我在Magento 2 CLI中添加了一个命令,给定json配置文件,该命令可以为这样的给定产品删除,添加,更新或排序媒体库条目。在这里粘贴代码摘录: /* $product is of type Magento\Catalog\Model\Product */ //get existing media gallery $existingMediaGallery = $product->getMediaGallery(); /* do stuff with media gallery (alter $existingMediaGallery) (add, remove, sort, ...) */ //set media gallery again $product->setMediaGallery($existingMediaGallery); //process media gallery $mediaGalleryEntries = $product->getMediaGalleryEntries(); $this->getMediaGalleryProcessor()->clearMediaAttribute($product, array_keys($product->getMediaAttributes())); if ($mediaGalleryEntries) { foreach ($mediaGalleryEntries as …


By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.