如何修复反射异常类验证器不存在错误


How to fix Reflection Exception Class validator does not exist error

我最近正在编写一些代码,但我收到了以下错误:第20行不存在反射异常类验证器。

这是最后一批出现错误的代码,是桌面服务提供商:

 /**
 * Register bindings
 *
 * @return void
 */
public function register()
{
    $this->repositories();
    $this->app->bind(''Desk'Forms'MessageForm', function($app) {
        $validator = $app['validator']->make([], []);  (line 20)
        return new 'Desk'Forms'MessageForm($validator);
    });
}
/**
 * Register Repositories
 */
protected function repositories()
{
    $this->app->bindShared(''Desk'Repositories'MessageRepository', function($app) {
        $record = new 'Desk'Records'MessageRecord;
        return new 'Desk'Repositories'MessageRepository($record);
    });
}

服务提供商:

/**
 * Register bindings
 *
 * @return void
 */
public function register()
{
    $this->registerSupport();
}

控制器:

protected $messageForm;
public function __construct(MessageForm $messageForm, MessageRepository $messageRepository,
  MessageRecord $messageRecord)
{
    $this->messageForm = $messageForm;
    $this->messageRepository = $messageRepository;
    $this->messageRecord = $messageRecord;
}
/**
 * Display a listing of the resource.
 * GET /messages
 *
 * @return Response
 */
public function index()
{
    return View::make('message.create');
}

app.config

 'providers' => array(
    'Illuminate'Foundation'Providers'ArtisanServiceProvider',
    'Illuminate'Auth'AuthServiceProvider',
    'Illuminate'Cache'CacheServiceProvider',
    'Illuminate'Session'CommandsServiceProvider',
    'Illuminate'Foundation'Providers'ConsoleSupportServiceProvider',
    'Illuminate'Routing'ControllerServiceProvider',
    'Illuminate'Cookie'CookieServiceProvider',
    'Illuminate'Database'DatabaseServiceProvider',
    'Illuminate'Encryption'EncryptionServiceProvider',
    'Illuminate'Filesystem'FilesystemServiceProvider',
    'Illuminate'Hashing'HashServiceProvider',
    'Illuminate'Html'HtmlServiceProvider',
    'Illuminate'Log'LogServiceProvider',
    'Illuminate'Mail'MailServiceProvider',
    'Illuminate'Database'MigrationServiceProvider',
    'Illuminate'Pagination'PaginationServiceProvider',
    'Illuminate'Queue'QueueServiceProvider',
    'Illuminate'Redis'RedisServiceProvider',
    'Illuminate'Remote'RemoteServiceProvider',
    'Illuminate'Auth'Reminders'ReminderServiceProvider',
    'Illuminate'Database'SeedServiceProvider',
    'Illuminate'Session'SessionServiceProvider',
    'Illuminate'Translation'TranslationServiceProvider',
    'Illuminate'Validation'ValidationServiceProvider',
    'Illuminate'View'ViewServiceProvider',
    'Illuminate'Workbench'WorkbenchServiceProvider',
    'Way'Generators'GeneratorsServiceProvider',
    'Desk'ServiceProvider',
    'Desk'Auth'AuthServiceProvider',
    'Desk'Parts'PartServiceProvider',
    'Desk'Desk'Repositories'RepoServiceProvider',
    'Desk'Desk'Forms'FormServiceProvider',
    'Desk'Desk'DeskServiceProvider',

这似乎是您的自定义提供程序的代码。您可能应该将它添加到app/config/app.php文件中providers部分的末尾,并明确地添加到'Illuminate'Validation'ValidationServiceProvider'之后,因为这里创建了$validator

正如我所说,转到app/config/app.php文件,找到以开头的部分

'providers' => array(

现在编辑您的提供商列表,将您的提供商放在提供商列表的末尾:

'providers'       => array(
   // here all list of all default providers
   // here your custom provider
),

编辑

然后你应该尝试改变:

$validator = $app->make('validator')->make([], []); 

进入

$validator = $app['validator']->make([], []);