Когда я создаю компонент и добавляю маршрут, он говорит, что компонент отсутствует. Что я могу сделать?

#php #html #laravel-8 #laravel-livewire

Вопрос:

Я создаю сайт электронной коммерции lin Laravel8 с помощью Livewire. Когда я создаю компонент(подробный компонент) и просматриваю файл(details-component.blade.php) и добавьте маршруты, которые он говорит

DetailsComponent не найден: Класс контроллера DetailsComponent для одного из ваших маршрутов не найден. Вы уверены, что этот контроллер существует и правильно импортирован?

Это тот маршрут, которым я воспользовался.

 Route::get('/product/{slug}', DetailsComponent ::class)->name('product.details');
 

Это компонент деталей

 <?PHP
namespace AppHttpLivewire;
use LivewireComponent;

class DetailsComponent extends Component
 {
   public $slug;

   public function mount($slug)
   {
      $this-> slug = $slug;
   }

   public function render()
   {
     $product = Product:: where('slug', $this->slug)->first();
     return view('livewire.details-component',['product'=> $product])->layout("layouts.base") ;
   }
}
 

В этом и заключается ошибка

 C:xampphtdocslaravel8ecommerce>php artisan serve
UnexpectedValueException

Invalid route action: [DetailsComponent].

at 
C:xampphtdocslaravel8ecommercevendorlaravelframeworksrcIlluminateRoutingRouteAction.php:92
   88▕      */
   89▕     protected static function makeInvokable($action)
   90▕     {
   91▕         if (! method_exists($action, '__invoke')) {
➜ 92▕             throw new UnexpectedValueException("Invalid route action: [{$action}].");
   93▕         }
   94▕
   95▕         return $action.'@__invoke';
   96▕     }

  `DetailsComponent` was not found: Controller class `DetailsComponent` for one of your routes was not found. Are you sure this controller exists and is imported correctly?
 

Как я могу решить эту проблему?

Комментарии:

1. Можете ли вы показать верхнюю часть вашего файла, где вы выполняете Route::get('/product/{slug}', DetailsComponent ::class)->name('product.details'); ? (Меня интересуют только строки, которые начинаются с namespace и/или use ).

2. Я думаю, что это проблема с импортом, можете ли вы обновить вопрос в верхней части вашего web.php файла И находится ли компонент в другом подкаталоге под AppHttpLivewire

3. @Определенно, вы оба были правы. Я не поместил » использовать приложениеHttpLivewireDetailsКомпонент;» в web.php.. моя ошибка

4. @Irfan вы оба были правы. Я не поместил » использовать приложениеHttpLivewireDetailsКомпонент;» в web.php.. моя ошибка