Статті

Laravel: що таке контролери laravel

У структурі MVC літера «C» означає контролери, і в цій статті ми побачимо, як використовувати контролери в Laravel. Діє як прямий трафік між видами та моделями. У цій статті ми побачимо, як створювати та налаштовувати контролери в Laravel.

Creare un controller у laravel

Щоб створити а controller, ми повинні відкрити командний рядок або термінал, відповідно до операційної системи, яку ми використовуємо, і ввести наступну команду, щоб створити контролер за допомогою Artisan CLI (Command Line Interface).

php artisan make:controller <controller-name> --plain

Замінити <controller-name> з вашим ім'ям controller. Це створить a controller. The controller створені можна переглянути в app/Http/Controllers .

Ви побачите, що деякі базові коди вже зроблені для вас, і ви можете додати власне кодування. The controller створений можна викликати з web.php із таким синтаксисом.

синтаксис
Route::get(‘base URI’,’controller@method’);
приклад

1 : Виконайте таку команду, щоб створити MyController

php artisan make:controller MyController

2 – Після успішного виконання ви отримаєте наступний результат.

3 – Ми знайдемо контролер, створений у app/Http/Controller/MyController.php з уже написаним основним кодом, і ми можемо вносити зміни за потреби.

Проміжне програмне забезпечення контролера

Ми вже бачили middleware і ми також можемо використовувати його з controller. The middleware його також можна призначити маршруту контролера або всередині конструктора контролера. Можна скористатися методом middleware призначити middleware al controller. The middleware зареєстровані також можуть бути обмежені певними методами controller.

Призначення проміжного ПЗ маршруту
Route::get('profile', [
   'middleware' => 'auth',
   'uses' => 'UserController@showProfile'
]);

Тут ми призначаємо проміжне програмне забезпечення автентифікації UserController у шляху профілю.

Призначення проміжного програмного забезпечення всередині конструктора контролера
<?php

namespace App\Http\Controllers;

use Illuminate\Http\Request;
use App\Http\Requests;
use App\Http\Controllers\Controller;

class MyController extends Controller {
   public function __construct() {
      $this->middleware('auth');
   }
}

Тут ми призначаємо middleware автентифікації використовуючи метод middleware в конструкторі MyController .

Зауважте, що $this->middleware() це працює тільки якщо призначити його в конструкторі. Якщо ми дзвонимо $this->middleware() від певного методу контролера, він не викличе жодних помилок, але проміжне програмне забезпечення фактично не працюватиме.

Цей варіант допустимий, але особисто я вважаю за краще розмістити все проміжне програмне забезпечення в routes, тому що все зрозуміліше, де шукати middleware.

приклад

1 – Давайте додамо наступні рядки коду до файлу routes/web.php і ми економимо.

<?php
Route::get('/mycontroller/path',[
   'middleware' => 'First',
   'uses' => 'MyController@showPath'
]);

2 – Давайте створимо a middleware називається FirstMiddleware запустивши наступний рядок коду.

php artisan make:middleware FirstMiddleware

3 : додайте наступний код у метод обробляти Дель FirstMiddleware щойно створений у app/Http/Middleware .

<?php

namespace App\Http\Middleware;
use Closure;

class FirstMiddleware {
   public function handle($request, Closure $next) {
      echo '<br>First Middleware';
      return $next($request);
   }
}

4 – Давайте створимо a middleware називається SecondMiddleware за допомогою такої команди.

php artisan make:middleware SecondMiddleware

5 : давайте додамо наступний код у метод handle SecondMiddleware щойно створений у app/Http/Middleware .

Інноваційний бюлетень
Не пропустіть найважливіші новини про інновації. Підпишіться, щоб отримувати їх електронною поштою.
<?php

namespace App\Http\Middleware;
use Closure;

class SecondMiddleware {
   public function handle($request, Closure $next) {
      echo '<br>Second Middleware';
      return $next($request);
   }
}

6 : давайте створимо a controller називається MyController запустивши наступний рядок.

php artisan make:controller MyController

7 – Після успішного виконання URL-адреси ви отримаєте наступний результат –

8 – Скопіюйте наступний код у файл app/Http/MyController.php.

<?php

namespace App\Http\Controllers;

use Illuminate\Http\Request;
use App\Http\Requests;
use App\Http\Controllers\Controller;

class MyController extends Controller {
   public function __construct() {
      $this->middleware('Second');
   }
   public function showPath(Request $request) {
      $uri = $request->path();
      echo '<br>URI: '.$uri;
      
      $url = $request->url();
      echo '<br>';
      
      echo 'URL: '.$url;
      $method = $request->method();
      echo '<br>';
      
      echo 'Method: '.$method;
   }
}

9 – Тепер давайте запустимо внутрішній веб-сервер php, виконавши таку команду, якщо ви цього ще не зробили.

php artisan serve

10 – Перейдіть за наступною URL-адресою.

http://localhost:8000/mycontroller/path

11 – Результат з’явиться, як показано на наступному зображенні.

Практично обидва проміжні програми задіяні, але тільки одна

Controller di restful resource

Часто при створенні програми потрібно щось зробити CRUD (Create, Read, Update, Delete)Laravel полегшує цю роботу. Просто створіть a controller і Laravel автоматично надасть усі методи для операцій CRUD. Ми також можемо записати єдиний шлях до всіх методів у файлі route.php.

приклад

1 : створити контролер під назвою MyController за допомогою такої команди.

php artisan make:controller MyController

2 : додайте наступний код app/Http/Controllers/MyController.php

<?php

namespace App\Http\Controllers;

use Illuminate\Http\Request;
use App\Http\Requests;
use App\Http\Controllers\Controller;

class MyController extends Controller {
   public function index() {
      echo 'index';
   }
   public function create() {
      echo 'create';
   }
   public function store(Request $request) {
      echo 'store';
   }
   public function show($id) {
      echo 'show';
   }
   public function edit($id) {
      echo 'edit';
   }
   public function update(Request $request, $id) {
      echo 'update';
   }
   public function destroy($id) {
      echo 'destroy';
   }
}

3 – Давайте додамо наступний рядок коду у файл routes/web.php .

Route::resource('my','MyController');

4 – Зараз ми реєструємо всі методи MyController, реєструючи контролер із ресурсом. Нижче наведено таблицю дій, керованих контролером ресурсів.

дієсловоШляхдіюНазва маршруту
GET/ мійіндексмій індекс
GET/my/createстворюватиmy.create
POST/ мійзберігатимій.магазин
GET/мій мій}Показуватиmy.show
GET/my/{my}/editредагуватиmy.edit
ВСТАВИТИ/ЗАЛАТИТИ/мій мій}оновленняmy.update
DELETE/мій мій}знищитимій. знищити

5 – Спробуйте запустити URL-адреси, наведені в таблиці нижче.

URLОписВхід
http://localhost:8000/myВиконайте метод індексу MyController.phpіндекс
http://localhost:8000/my/createВиконайте метод create MyController.phpcreare
http://localhost:8000/my/1Виконайте метод show MyController.phpПоказувати
http://localhost:8000/my/1/editВиконайте метод редагування MyController.phpредагувати

Ercole Palmeri

Інноваційний бюлетень
Не пропустіть найважливіші новини про інновації. Підпишіться, щоб отримувати їх електронною поштою.

Останні статті

Veeam пропонує найповнішу підтримку програм-вимагачів, від захисту до реагування та відновлення

Coveware від Veeam продовжить надавати послуги реагування на інциденти кібервимагання. Coveware запропонує криміналістику та можливості відновлення…

Квітень 23 2024

Зелена та цифрова революція: як прогнозне технічне обслуговування трансформує нафтову та газову промисловість

Прогнозне технічне обслуговування революціонізує нафтогазовий сектор завдяки інноваційному та проактивному підходу до управління заводом.…

Квітень 22 2024

Британський антимонопольний регулятор викликає тривогу BigTech через GenAI

CMA Великобританії випустило попередження щодо поведінки Big Tech на ринку штучного інтелекту. Там…

Квітень 18 2024

Casa Green: енергетична революція для сталого майбутнього в Італії

Указ «Case Green», розроблений Європейським Союзом для підвищення енергоефективності будівель, завершив свій законодавчий процес з…

Квітень 18 2024

Читайте Innovation своєю мовою

Інноваційний бюлетень
Не пропустіть найважливіші новини про інновації. Підпишіться, щоб отримувати їх електронною поштою.

Слідуйте за нами