Working with laravel

Настройка запуска виртуального хоста через 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

Для организации доступа на определенные страницы только админов нужно сделать следующее:

  1. Заводим поле в таблице users – admin (0/1)
  2. php artisan make:middleware IsAdmin
  3. в разделе routeMiddleware файла app/Http/Kernel.php добавляем ‘admin’ => \App\Http\Middleware\IsAdmin::class,
  4. handel функцию в IsAdmin.php правим: public function handle($request, Closure $next) { if (Auth::user() && Auth::user()->admin == 1) { return $next($request); } return redirect(‘/’); }
  5. в web.php группа страниц для админа отсекается: Route::group([‘middleware’ => ‘auth’, ‘middleware’ => ‘admin’], function () { // });

Если работаешь через API, то нужно для моделей использовать resource (https://laravel.com/docs/8.x/eloquent-resources). Это функция позволяет “обрезать” нужные для передачи данные, добавлять свои в коллекцию по определенному шаблону.

Leave a Reply

Your email address will not be published. Required fields are marked *