Я обнаружил проблему.
Я получил $feedbacks is undefined
, потому что мой анонимный компонент без переменных изначально находился в resources\views\components\homepage\feedback.blade.php
, и когда я решил создать класс представления для этого компонента, связь не была установлена. Laravel создает автоматическую c связь между feedback.blade.php
и app\View\FeedbackComponent.php
, только если файл лезвия находится непосредственно в папке resources\views\components
. И мой компонент находился в подпапке.
Итак, laravel попытался отобразить resources\views\components\homepage\feedback.blade.php
с переменной $feedback
внутри, и не смог найти, где определено $feedback
.
Так что я просто вручную Зарегистрируйте класс FeedbacksComponent, подобный этому, в методе загрузки поставщика службы приложений
Blade::component('homepage-feedbacks', FeedbacksComponent::class);
, а затем используйте <x-homepage-feedbacks/>
для его рендеринга
Я бы сказал, что документация не очень ясна. Он говорит, что за пределами папки компонентов автоматическое обнаружение c не работает. Но это не говорит о том, что автоматическое обнаружение подпапок внутри компонентов c не работает.