每当我运行工匠命令时,我都会收到以下错误消息:
{"error":{"type":"ReflectionException","message":"Class OrdersModel does not exist","file":"\/home\/vagrant\/Omono\/vendor\/laravel\/framework\/src\/Illuminate\/Container\/Container.php","line":552}}
这只发生在我的流浪测试服务器上,而不是在生产中。我试过跑步
composer dump-autoload
等等我已经签入了composer.json,里面有models文件夹。我还检查了 vendor/composer/autoload_classmap.php 并且它有我的映射:
'OrdersModel' => $baseDir . '/app/models/Orders.php',
我不确定还有什么可以尝试纠正这个问题。
编辑:请注意,我对 OrdersModel 或实际 larvel 应用程序上的任何其他类没有任何问题。
EDIT2 (重要??):因此,通过将跟踪语句添加为冗长似乎不起作用的艰巨任务,我发现问题出在创建服务提供者时,归结为在应用程序中创建“单例” . 我没有编写此代码,但看起来有一个接口(OrderRepositoryInterface)和一个映射到它的实现(DbOrderRepository)。文件开始如下
<?php namespace Omono\Repositories;
use OrdersModel as Order;
所以无论出于何种原因,这是它寻找 OrderModels 却找不到它的地方。我很确定这个模块在实际的网络应用程序中没有问题。因此,由于某种原因,只有在运行时才能在此文件夹中找到 OrdersModel artisan。
编辑3:
php -v 给出:
PHP Warning: Module 'mongo' already loaded in Unknown on line 0
PHP 5.5.12-2+deb.sury.org~trusty+1 (cli) (built: May 12 2014 13:48:43)
Copyright (c) 1997-2014 The PHP Group
Zend Engine v2.5.0, Copyright (c) 1998-2014 Zend Technologies
with Zend OPcache v7.0.4-dev, Copyright (c) 1999-2014, by Zend Technologies
with Xdebug v2.2.5, Copyright (c) 2002-2014, by Derick Rethans
我还应该指出,当我访问该网站时,一切都运行良好。OrdersModel 可以毫无问题地完成它应该做的事情,并且我没有收到任何错误。这仅在运行 artisan 命令时发生。也许不相关的是,每次我更新我的流浪测试服务器(有问题的服务器)时,我都需要运行 composer dumpautoload 以使几个类工作。