За последние 24 часа нас посетили 17177 программистов и 1650 роботов. Сейчас ищут 1084 программиста ...

Класс контроллера не найден

Тема в разделе "Laravel", создана пользователем RsbAstana, 13 авг 2021.

  1. RsbAstana

    RsbAstana Новичок

    С нами с:
    1 апр 2021
    Сообщения:
    11
    Симпатии:
    2
    Здравствуйте!
    У меня такая проблема - не найден CharacterController
    Код (Text):
    1. Illuminate\Contracts\Container\BindingResolutionException: Target class [CharacterController] does not exist. in file C:\Users\HP\Desktop\RS\OSPanel\domains\rick_and_morty_backen d\vendor\laravel\framework\src\Illuminate\Container\Containe r.php on line 875
    Текст контроллера:
    PHP:
    1. <?php
    2.  
    3. namespace App\Http\Controllers;
    4.  
    5. use Illuminate\Support\Facades;
    6. use Illuminate\Support\Facades\App;
    7. use Illuminate\Http\Request;
    8. use App\Models\Character;
    9.  
    10. class CharacterController extends Controller
    11. {
    12.     function characters()
    13.     {
    14.         $characters = Character::orderBy('name')->get();
    15.         return response()->json($characters);
    16.     }
    17. }
    Ошибка возникает в api.php:

    PHP:
    1. <?php
    2.  
    3. use Illuminate\Http\Request;
    4. use Illuminate\Support\Facades\Route;
    5. use App\Http\Controllers\CharacterController;
    6.  
    7.  
    8. Route::middleware('auth:api')->get('/user', function (Request $request) {
    9.     return $request->user();
    10. });
    11.  
    12. //Route::resource('/v1/characters', '\App\Http\Controllers\CharacterController');
    13.  
    14. Route::resource('/v1/characters', 'CharacterController');
    Если здесь
    PHP:
    1. //Route::resource('/v1/characters', '\App\Http\Controllers\CharacterController');
    убрать комментарий - сообщения, что класс контроллера не найден, нет.
     
  2. MouseZver

    MouseZver Суперстар

    С нами с:
    1 апр 2013
    Сообщения:
    7.790
    Симпатии:
    1.330
    Адрес:
    Лень
    PHP:
    1. Route :: resource( '/v1/characters', CharacterController :: class );
     
  3. RsbAstana

    RsbAstana Новичок

    С нами с:
    1 апр 2021
    Сообщения:
    11
    Симпатии:
    2
    Спасибо большое!
    А как быть с такой командой в web.php:
    PHP:
    1. Route::get('/post/index/{user_id}', '\App\Http\Controllers\PostController@index')
    2.     ->name('post.index');
    ?
     
  4. mkramer

    mkramer Суперстар
    Команда форума Модератор

    С нами с:
    20 июн 2012
    Сообщения:
    8.579
    Симпатии:
    1.760
    Конкатенацию сделать. А вообще, какой ларавель? Восьмёрка?
    --- Добавлено ---
    В восьмёрке роутинг кардинально поменялся
     
  5. RsbAstana

    RsbAstana Новичок

    С нами с:
    1 апр 2021
    Сообщения:
    11
    Симпатии:
    2
    Laravel 8.40
    --- Добавлено ---
    Вопрос решен:
    PHP:
    1. Route::get('/post/index/{user_id}', [PostController::class, 'index'])
    2.     ->name('post.index');
    --- Добавлено ---
    Это вначале файла нужно:
    PHP:
    1. use App\Http\Controllers\PostController;
     
    Репозиторий и mkramer нравится это.