Настройка запуска виртуального хоста через Xampp:
В файле C:\Windows\System32\drivers\etc\hosts добавляем строчку сайта:
127.0.0.1 laravel.test
В файле c:\xampp\apache\conf\extra\httpd-vhosts.conf добавляем строчки с настройкой пути:
<VirtualHost *:80> ServerName laravel.test DocumentRoot "c:/xampp/htdocs/laravel.test/public" </VirtualHost>
После этого можно вызывать сайт из браузера напрямую: http://laravel.test/
Работа с контроллерами: либо мы раскоментируем строчку в RouteServiceProvider ‘protected $namespace = ‘App\\Http\\Controllers’;’ и тогда ссылаться на контроллер можно ‘MainController@index’
Либо мы прописываем в web ‘use App\Http\Controllers\MainController’ и тогда полный вызов класса ‘Route::get(‘/users’, [MainController::class, ‘index’]);’
Решил остаться на новом формате (через классы)
https://stackoverflow.com/questions/63807930/target-class-controller-does-not-exist-laravel-8
Для организации доступа на определенные страницы только админов нужно сделать следующее:
- Заводим поле в таблице users – admin (0/1)
- php artisan make:middleware IsAdmin
- в разделе routeMiddleware файла app/Http/Kernel.php добавляем ‘admin’ => \App\Http\Middleware\IsAdmin::class,
- handel функцию в IsAdmin.php правим: public function handle($request, Closure $next) { if (Auth::user() && Auth::user()->admin == 1) { return $next($request); } return redirect(‘/’); }
- в web.php группа страниц для админа отсекается: Route::group([‘middleware’ => ‘auth’, ‘middleware’ => ‘admin’], function () { // });
Если работаешь через API, то нужно для моделей использовать resource (https://laravel.com/docs/8.x/eloquent-resources). Это функция позволяет “обрезать” нужные для передачи данные, добавлять свои в коллекцию по определенному шаблону.