Questions tagged «magento2»

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

2
过滤Magento 2对象存储库
在Magento 2中,您可以使用产品存储库按产品属性进行过滤吗? 在Magento 2中,您可以使用搜索条件对象 \Magento\Framework\Api\SearchCriteriaInterface $searchCriteria, 和一个仓库 \Magento\Catalog\Api\ProductRepositoryInterface $productRepository, 提取对象列表 $searchCriteria->getPageSize(10); $list = $productRepository->getList($searchCriteria); 但是,searchCriteria对象没有(似乎?)具有直接过滤功能。搜索条件类确实具有添加名为filterGroups的方法。 #File: lib/internal/Magento/Framework/Api/SearchCriteria.php public function getFilterGroups() { $filterGroups = $this->_get(self::FILTER_GROUPS); return is_array($filterGroups) ? $filterGroups : []; } public function setFilterGroups(array $filterGroups = null) { return $this->setData(self::FILTER_GROUPS, $filterGroups); } 但是尚不清楚究竟是什么过滤组归功于PHP的无类型数组。 我如何使用Magento 2存储库执行类似的操作 向我展示所有带有[此特定SKU]的产品 显示[此日期]之后创建的所有产品 等等

11
如何禁用Magento 2条评论
我正在尝试禁用Magento 2产品评论功能。我尝试在Magento 2 admin Stores \ Advanced \ Advanced \ Magento_Review中禁用模块,但是每个产品上的评论标签仍然存在。有什么办法可以禁用它吗?我知道我们可以在Magento 1中将其禁用。


2
在任何类的构造函数DI中上下文对象的用途是什么?上下文如何工作?
在该类的大多数构造方法中,都会传递Context对象。我无法理解Context Obj的工作原理。我还注意到有时将其传递给父类的构造函数,如下所示。 public function __construct( \Magento\Framework\App\Action\Context $context, \Magento\Catalog\Model\Design $catalogDesign, \Magento\Catalog\Model\Session $catalogSession, .... parent::__construct( $context, $layoutFactory, 您能否解释这个特定的上下文对象如何工作?



2
在Magento 2中使用PHPUnit 4.1对PHP7代码进行单元测试的正确方法是什么?
在编写模块时,我试图为它们提供应用程序最关键部分的单元测试。但是,目前(Magento 2.1.3)有几种编写单元测试的方法: 不同的测试方式 与它集成bin/magento dev:tests:run unit并在与Magento捆绑在一起的默认phpunit设置之上运行它。 分别编写它们,与它们一起运行vendor/bin/phpunit app/code/Vendor/Module/Test/Unit并模拟Magento的所有内容。 分别编写它们,模拟所有内容,并使用系统全局版本的PHPUnit。 单独编写它们,然后使用运行它们vendor/bin/phpunit,但仍然使用\Magento\Framework\TestFramework\Unit\Helper\ObjectManager。 Magento 2和PHPUnit 除此之外,Magento 2捆绑了与PHP7不兼容的PHPUnit 4.1.0。提示类型的本机(如string和int)并在签名中声明返回类型将引发错误。例如,具有方法签名的接口/类如下: public function foo(string $bar) : bool; ...将无法被PHPUnit 4.1.0模拟。:-( 我目前的情况 因此,我现在主要以第三种方式(通过调用系统全局PHPUnit版本)编写单元测试。 在我的设置中,我全局安装了PHPUnit 5.6,因此我可以解决编写正确的PHP7代码的问题,但是我必须做一些调整。例如: phpunit.xml 必须看起来像这样,所以我可以使用composer autoloader: <?xml version="1.0"?> <phpunit bootstrap="../../../../../../vendor/autoload.php" colors="true"> <testsuites> <testsuite name="Testsuite"> <directory>.</directory> </testsuite> </testsuites> </phpunit> ...以及我所有的setUp()方法中,都有以下检查,以便可以编写具有前向兼容性的测试: // Only allow PHPUnit 5.x: if (version_compare(\PHPUnit_Runner_Version::id(), …

4
如何在Magento 2中禁用该块的缓存?
protected function _construct() { $this->addData( [ 'cache_lifetime' => false, 'cache_tags' => array('MY_BLOCK'), ] ); } public function getCacheKeyInfo() { return []; } 不起作用。为什么?如何禁用缓存块?
23 magento2  cache 

1
Magento 2:向每个页面的<head>添加任意HTML吗?
在Magento 2中,是否可以向每个前端/购物车页面的HTML添加任意位的HTML &lt;head/&gt;? 我知道我可以&lt;body&gt;使用以下代码将块添加到内容/ 区域 &lt;page xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="urn:magento:framework:View/Layout/etc/page_configuration.xsd"&gt; &lt;body&gt; &lt;referenceBlock name="content"&gt; &lt;block type="Pulsestorm\Test\Block\Head" name="pulsestorm.head" as="pulsestorm.head" template="pulsestorm/head.phtml"/&gt; &lt;/referenceBlock&gt; &lt;/body&gt; &lt;/page&gt; 但是,尚不清楚是否存在用于将内容添加到&lt;head/&gt;页面元素的类似块。我已经浏览了开发文档网站和源代码,并且有很多对新标签的引用,您可以将它们与&lt;head/&gt;标签一起使用 &lt;head&gt; &lt;css.../&gt; &lt;js.../&gt; &lt;/head&gt; 但我找不到&lt;head/&gt;在Magento 2 中将任意html /文本添加到页面部分的方法的任何参考。
23 php  layout  magento2 

5
通过brew软件包在OS X上通过FastCGI(不是mod_php)运行Magento 2
根据社区中各种论坛的帖子和对话,似乎有些人正在通过PHP环境在OS X上运行Magento 2开发实例,该环境不使用内置的Apache / PHP组合,而是使用来自的软件包brew来获取使用nginx和/或运行和运行的FastCGI PHP环境apache。 是否有人提供命令列表和配置说明,以使用Brew软件包启动Magento 2并在OS X上运行,或通过其他方法在OS X的FastCGI环境中运行PHP?我不是在寻找Docker或Vagrant-我想在OS X上原生运行PHP,并且不想使用mod_php。
23 magento2  php 


4
Magento2 CLI模块:启用会给出错误“未知模块”
在Magento2中,我构建了一个简单的自定义模块,并希望通过CLI启用它: bin/magento module:enable Vendorname_Modulename 但这给了我以下错误: 未知模块:“供应商名称_模块名称” 该模块及其文件确实存在于 app/code/Vendorname/Modulename/ 当然,我已经清除/禁用了缓存,清除了生成,Memcache(d)没有运行...

13
在模板中获取产品的完整图片网址
我正在尝试创建一个静态块来显示动态产品。这是应该获取每个子类别并为每个类别中的每个产品打印图像的代码。 &lt;?php $objectManager = \Magento\Framework\App\ObjectManager::getInstance(); $category = $objectManager-&gt;get('Magento\Framework\Registry')-&gt;registry('current_category'); ?&gt;&lt;ol&gt;&lt;?php foreach ($category-&gt;getChildrenCategories() as $child_category) { ?&gt;&lt;li&gt; &lt;ul&gt;&lt;?php foreach ($child_category-&gt;getProductCollection() as $product) { ?&gt;&lt;li&gt;&lt;img src="&lt;?php echo $product-&gt;getImage();?&gt;"/&gt;&lt;li&gt;&lt;?php } ?&gt;&lt;/ul&gt; &lt;/li&gt;&lt;?php } ?&gt;&lt;/ol&gt; 除了img srcs仅以“ /a/b/ab001.jpg”为例而不是完整路径外,它几乎可以正常工作,例如“ / pub / media / catalog / product / cache / 1 / small_image / 240x300 / …

9
如何将magento2从2.0.0更新到2.0.2
此处的文档说您应该使用系统升级实用程序:http : //devdocs.magento.com/guides/v2.0/comp-mgr/upgrader/upgrade-start.html 并从管理员那里进行操作。 我认为您可以通过将composer.json文件更改为"version": "2.0.2",,然后运行来更新它 composer update。 这是另一种更新方式还是系统升级实用程序是唯一的方法?
23 magento2  upgrade  json 


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.