Почему в Laravel 5.5.43 появляется ошибка "Class 'App \ Providers \ Form' not found"? - PullRequest
0 голосов
/ 18 сентября 2018

Сегодня утром я выполнил установку Laravel 5.5.43 с помощью следующей команды Composer:

composer create-project laravel/laravel project-name

Затем я запустил следующую команду в папке проекта для установки Laravel Collective:

composer require "laravelcollective/html":"^5.4.0"

Затем я добавил следующее в providers в config/app.php:

Collective\Html\HtmlServiceProvider::class,

И я добавил следующее в aliases в config/app.php:

'Form' => Collective\Html\FormFacade::class,
'Html' => Collective\Html\HtmlFacade::class,

После этого я захотел создать пользовательские компоненты формы, поэтому я выполнил следующую команду Artisan:

php artisan make:provider FormServiceProvider

И в этом новом файле провайдера я добавил следующую строку к методу boot:

Form::component('customText', 'components.form.text', ['name', 'value' => null, 'attributes' => []]);

Наконец, я добавил следующее к providers в config/app.php:

App\Providers\FormServiceProvider::class,

Когда я делаю это и обновляю экземпляр Laravel из браузера, я получаю следующую ошибку:

Class 'App\Providers\Form' not found

Однако, если я добавлю следующее в начало файла FormServiceProvider.php, оно будет работать:

use Collective\Html\FormFacade AS Form;

Я понимаю концепцию пространств имен и почему это делает метод Form::component в методе boot в файле должным образом, но я не понимаю, почему мне нужно добавить эту строку use в файл вообще.

Разве строка 'Form' => Collective\Html\FormFacade::class, в массиве aliases в файле app.php не должна делать это для меня, поэтому мне вообще не нужно добавлять строку use в FormServiceProvider.php? Что я упускаю / делаю неправильно / не понимаю?

Спасибо.

Ответы [ 2 ]

0 голосов
/ 18 сентября 2018

Я, вероятно, должен был бы просто удалить этот вопрос, но простым ответом было добавить следующее в верхней части FormServiceProvider.php файла:

use Form;

Спасибо.

0 голосов
/ 18 сентября 2018

Выполнить ниже команды:

php artisan config:cache
php artisan cache:clear
...