Как исправить ошибку Reflection Exception Class не существует

Недавно я работал над некоторым кодом, и я получил эту ошибку: Валидатор класса исключения Reflection не существует в строке 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',

1

Решение

Кажется, это код для вашего собственного провайдера. Вы, вероятно, должны добавить его в конце вашего providers раздел в app/config/app.php файл и определенно после '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([], []);
1

Другие решения

Других решений пока нет …