Что я делал до ошибки:
1. Я создал новый контроллер в Контроллерах с именем MyPlaceController.
namespace App\Http\Controllers;
use Illuminate\Http\Request;
class MyPlaceController extends Controller
{
public function index()
{
return 'this is my place';
}
}
2. После шага 1 я зашел в web.php и написал код:
use Illuminate\Support\Facades\Route;
Route::get('/', function () {
return view('welcome');
});
Route::get('/my_page', 'MyPlaceController@index');
3. Запускаем сайт с command php artisan serve
После этого шага я получил сообщение об ошибке с текстом. Целевой класс [MyPlaceController] не существует.
Illuminate\Contracts\Container\BindingResolutionException Целевой класс [MyPlaceController] не существует.
4. Я пытался создать эти файлы самостоятельно, но не получилось (я также пытался создать эти файлы с помощью cmd, но после создания не было строки с именем protected $namespace 'App\\Http\\Controllers)
В видеокурсе по Laravel автор использовал 10 версию. Для решения этой проблемы он подошел к файлу RouteServiceProvider.php и раскомментировал строку с текстом: protected $namespace 'App\\Http\\Controllers' и после этого действия сайт снова заработал, но в моей 11 версии эти файлы нет, и поэтому я не могу сделать то же, что и он. Еще напишу, что из всех 5 файлов в Провайдерах у меня есть только один файл с именем AppServiceProvider.php (но у автора 5 файлов как на картинке).
Авторские файлы:
А также я хочу показать структуру моего проекта: Структура моего проекта
(на всякий случай прошу прощения, возможно мой вопрос был поставлен не очень корректно)
Лучше используйте синтаксис [MyPlaceController::class, 'index'] вместо 'MyPlaceController@index' и импортируйте этот класс в свой web.php (чтобы он имел строку типа use App\Http\Controllers\MyPlaceController;) — см. пример здесь: laravel.com/docs/11.x/controllers#basic-controllers






use App\Http\Controllers\MyPlaceController;
Route::get('/my_page', [MyPlaceController::class,'index']);
Это правильный синтаксис для определения маршрутов в Laravel 11. Это структура каталогов по умолчанию в Laravel 11.
Большое спасибо. Проблема решена благодаря вашему ответу! :)
«но в моей версии 11 этих файлов нет». Теперь такие вещи должны предоставляться по-другому в
bootstrap/app.php.