Magento 2类*工厂不存在


15

我正在尝试安装插件,并删除了var / generation和var / cache / *。我已经检查了MAGE_MODE,并且正在开发中,但是现在当我访问前端和管理员时,我得到了随机错误,其含义是: Class Magento\Customer\Model\CustomerFactory does not exist

Magento \ Sales \ Model \ ResourceModel \ Report \ OrderFactory类不存在

正在创建一些类,但不是全部。我尝试再次清除缓存和生成文件夹,但是然后我得到了相同的错误。

有任何想法吗?


1
检查var / generation文件夹上的权限
Marius

它说drwxrwxrw-5
jstrez77 '16

我不得不清理var / generation文件夹几次,首先进入主页,清理,然后是admin,然后登录,然后清理...,它起作用了……?我不明白这一点
jstrez77 '16

在“ var / generation”文件夹中具有绝对权限。
Travis van der Font

Answers:



10

对我来说,我删除了var/generation文件夹,然后运行magento setup:di:compile生成了所有必需的类。

(就我而言:然后遇到缓存问题,我删除了初始缓存文件夹。)

然后它解决了我的问题。干杯!


1
需要在结尾更改文件所有者
moshe beeri '16


1

需要执行以下命令:

sudo php -f bin/magento setup:di:compile 

sudo rm -rf pub/static/*/*; sudo rm -rf var/*/*; 
sudo php -f bin/magento setup:static-content:deploy -f  

sudo php bin/magento cache:clean

另外,需要适当的许可。如果在生产中,则需要执行适当的权限。但是,在本地计算机上,您可以运行完全权限:

sudo chmod -R 777 *

1

授予777权限并将所有权更改为Generated / code文件夹的www-data,然后运行命令 sudo php bin/magento setup:di:compileclear cache并解决您的问题


1

这只是<magento-root>/var/文件夹权限问题。

使用CLI模式执行以下命令

sudo chmod -R 777 var/

0

Magento 2在var/generation文件夹中创建工厂类,如果您在其中添加了新参数__construct()而工厂类不存在,则Magento 2会抛出上述错误消息。即使很少有解决方案可以解决您的问题,我也可以为您推荐另一种不需要清除生成文件夹的解决方案。对Factory类进行任何更改后,请使用以下命令:

bin/magento setup:di:compile

此命令在生产服务器上可能更有用。


-2

类...工厂不存在意味着您的模型类未加载。由于Magento 2基于模块化编程,因此我们需要在要显式使用的地方指定模型类。我们可以使用两种类型的模型类:

1.通过“使用”

use Magento\Customer\Setup\CustomerSetupFactory;

public function __construct(CustomerSetupFactory $customerSetupFactory)
{
    $this->customerSetupFactory = $customerSetupFactory;
}
  1. public function __construct(Magento\Customer\Setup\CustomerSetupFactory $customerSetupFactory){
    
    $this->customerSetupFactory = $customerSetupFactory;
    
    }

当您在浏览器中点击插件的URL(http://domain.com/您的模块的名字)时,Magento会为您的模块生成代码,如下所示:

\var\generation\Your Vendor Directory\Your Module Directory\Controller
\var\generation\Your Vendor Directory\Your Module Directory\Model

在您的情况下,您需要检查“ CustomerFactory”和“ OrderFactory”是否按上述格式使用。

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.