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.php | creare |
http://localhost:8000/my/1 | Виконайте метод show MyController.php | Показувати |
http://localhost:8000/my/1/edit | Виконайте метод редагування MyController.php | редагувати |
Ercole Palmeri
Coveware від Veeam продовжить надавати послуги реагування на інциденти кібервимагання. Coveware запропонує криміналістику та можливості відновлення…
Прогнозне технічне обслуговування революціонізує нафтогазовий сектор завдяки інноваційному та проактивному підходу до управління заводом.…
CMA Великобританії випустило попередження щодо поведінки Big Tech на ринку штучного інтелекту. Там…
Указ «Case Green», розроблений Європейським Союзом для підвищення енергоефективності будівель, завершив свій законодавчий процес з…