Questions tagged «magento2»

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

1
Magento 2:从布局XML中的系统配置中获取价值
如何从我在管理系统配置中设置的核心配置值中的页脚中获取模块链接标识符 <referenceBlock name="footer_links"> <block class="Magento\Framework\View\Element\Html\Link\Current" name="storelocator-policy-link"> <arguments > <argument ifconfig="googlemapsstorelocator/general/enable" name="label" xsi:type="string">Google Maps Store Locator</argument> <argument name="path" xsi:type="string">I need this value form the configuration settings</argument> </arguments> </block> </referenceBlock>

4
类别错误:具有相同ID“ 191”的项目(Magento \ Catalog \ Model \ Category \ Interceptor)已经存在
我知道产品也有类似的问题,但是现在我遇到了类别错误。 我不记得自己做了什么不同的事情,当我进入前端的类别页面时,突然就开​​始抛出此错误。 有时在管理员中重新保存类别可以解决问题,但大多数情况下并不能解决问题。此错误来自何处?如何解决?还有其他人也遇到此错误吗? 编辑 看起来类别页面要求URL重写表提供URL。它生成此查询: SELECT `e`.*, IF(at_is_active.value_id > 0, at_is_active.value, at_is_active_default.value) AS `is_active`, `url_rewrite`.`request_path` FROM `catalog_category_entity` AS `e` INNER JOIN `catalog_category_entity_int` AS `at_is_active_default` ON ( `at_is_active_default`.`entity_id` = `e`.`entity_id`) AND ( `at_is_active_default`.`attribute_id` = '46' ) AND `at_is_active_default`.`store_id` = 0 LEFT JOIN `catalog_category_entity_int` AS `at_is_active` ON ( `at_is_active`.`entity_id` = `e`.`entity_id` ) …

2
Magento 2:扩展池,读取处理程序和保存处理程序
谁能向我解释如何使用ReadHandler,SaveHandler以及EntityManager / ExtensionPool的使用? 我正在努力解决这个问题,但是我不太了解如何实现它。如果我理解正确,它们可以用于在对象上执行其他持久性操作,例如创建多对多关系,就像在CMS模块中使用它们将实体链接到商店一样。 我正在尝试通过将另一个实体与CMS页面相关联来做同样的事情,但是我似乎无法使其正常工作。也就是说,如果我正确使用此设计模式。 谁能对此发表一些看法?很抱歉,由于我不在上班时间,目前无法共享一些代码。 编辑:这是我当前正在使用的代码: 我已将添加cms_page_form.xml到模块的-文件view/adminhtml/ui_component夹中,因此我还有一个附加选项卡,用于显示客户组: <?xml version="1.0" encoding="UTF-8"?> <form xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="urn:magento:module:Magento_Ui:etc/ui_configuration.xsd"> <fieldset name="customer_groups"> <argument name="data" xsi:type="array"> <item name="config" xsi:type="array"> <item name="collapsible" xsi:type="boolean">true</item> <item name="label" xsi:type="string" translate="true">Customer Groups</item> <item name="sortOrder" xsi:type="number">100</item> </item> </argument> <field name="customer_groups"> <argument name="data" xsi:type="array"> <item name="options" xsi:type="object">Magento\Customer\Model\Config\Source\Group\Multiselect</item> <item name="config" xsi:type="array"> <item name="dataType" xsi:type="string">int</item> <item …

1
magento2的编译中上下文对象中已经存在不正确的依赖项ScopeConfigInterface
<?php /** * Copyright © 2015 Magento. All rights reserved. * See COPYING.txt for license details. */ namespace Ortho\Featuredproduct\Helper; use Magento\Framework\App\Helper\AbstractHelper; /** * Search helper */ class Data extends AbstractHelper { /** * @var \Magento\Framework\App\Config\ScopeConfigInterfac */ protected $_scopeConfig; protected $_config; protected $_storeManager; protected $_productFactory; CONST FEATURED_ENABLE = 'featured_settings/general/isenable'; CONST FEATURED_TITLE …


3
强制产品收集使用EAV代替平板
在Magento 2中,如何临时禁用平面目录?我有一个与前端商店关联的产品集合,并希望通过EAV表加载它。 我查看了集合如何确定是否应使用平面表,但没有找到将设置注入到任何地方的方法。 在Magento 1中,我将更改“平面目录已启用”的已加载配置值: Mage::app()->getStore($storeId)->setConfig('catalog/frontend/flat_catalog_product', 0); 我还需要这样诉诸于全球状态吗?如果是这样,怎么办?还是有一种更优雅的方式?



4
供应商/ magento /中的类名“无效”
我正在尝试使用重新编译 php bin / magento安装程序:di:compile 但是,当我运行此命令时,我得到: 致命错误:无法在第9行的/var/www/html/magento/vendor/magento/module-sales/Controller/Adminhtml/Order/Invoice/Void.php中保留'Void'作为类名 我正在运行PHP 7.1.0-alpha。

2
Magento 2-自定义管理网格字段-排序或过滤时出错
我将自定义列添加到管理网格,像这样 <column name="customer_name" class="Vendor\Module\Ui\Component\Listing\Columns\CustomerName"> <argument name="data" xsi:type="array"> <item name="config" xsi:type="array"> <item name="filter" xsi:type="string">text</item> <item name="editor" xsi:type="string">text</item> <item name="sortable" xsi:type="string">true</item> <item name="label" xsi:type="string" translate="true">Customer Name</item> <item name="sortOrder" xsi:type="number">30</item> </item> </argument> </column> 在我的CustomerName类中,我为此列创建值: public function prepareDataSource(array $dataSource) { $fieldName = $this->getData('name'); foreach ($dataSource['data']['items'] as & $item) { $customer = $this->customerRepository->getById($item['customer_id']); $name = …

1
控制器操作中的保留关键字-Magento 2
我正在研究管理网格的概念。我找到了一个github源代码并对其进行了分析。 虽然我发现URL与UI组件布局中的声明不同。 <item name="url" xsi:type="string">*/*/new</item> */*是当前当前的名字和动作路径,但是我New.php在控制器路径中找不到,但是NewAction.php存在文件。 所以我很困惑。如何NewAction.php在Model中自动映射到类似工厂方法? 谁能解释一下?

1
Magento 2:在UI组件中填充“元素”的内容
列出UI组件的顶级KnockoutJS模板如下所示 <!-- File: vendor/magento//module-ui/view/base/web/templates/collection.html --> <each args="data: elems, as: 'element'"> <render if="hasTemplate()"/> </each> Magento将其翻译为以下原始KnockoutJS代码。 <!-- ko foreach: {data: elems, as: 'element'} --> <!-- ko if: hasTemplate() --><!-- ko template: getTemplate() --><!-- /ko --><!-- /ko --> <!-- /ko --> 无论哪种情况,此模板都将foreach覆盖视图模型的elems属性。 如果我查看RequireJS模块(我认为>),它返回视图模型的构造函数类 vendor/magento/module-ui/view/base/web/js/lib/core/collection.js 我看到该insertChild方法似乎添加到elems属性。 我不太清楚的是:Magento实际在何处调用insertChild以填充elems和/或如何elems填充构成UI组件集合的视图模型?


3
如何以编程方式为Magento 2中的类别视图添加自定义布局句柄
因此,我想为所有类别视图页面添加自定义布局句柄。应该加载的句柄取决于某些类别参数,因此需要以编程方式添加该句柄 $page->addPageLayoutHandles() 似乎很简单..?显然不是 Magento 2提供了一个很好的插件系统,我自然会使用它,只需定义一个afterExecute()在原始类别之后运行的插件,execute()然后将任何更新从那里推送到Page对象。 不幸的是,它不是那样工作的。.原因是原始execute()方法(最终)将执行$page->getConfig()->addBodyClass()-对该方法的调用将自动强制布局完全加载和生成,因此任何后续尝试添加新布局Page的布局句柄完全没有用。我环顾四周,找到任何不太优雅的方法来实现相同的目的(仍然使用插件)..找不到任何东西。 我最终运行了自己的类别视图控制器,但是我不希望这样。 所以我的问题是.. 如何为类别视图添加(以编程方式)新的页面布局句柄?并优雅地做。


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.