Чланци

Ларавел: Шта су ларавел контролери

У МВЦ оквиру, слово „Ц“ означава контролере, а у овом чланку ћемо видети како да користимо контролере у Ларавелу. Делује као директан саобраћај између погледа и модела. У овом чланку видимо како да креирате и подесите контролере у Ларавел-у.

Creare un controller у ларавел

За стварање а controller, морамо отворити командну линију или терминал, у складу са оперативним системом који користимо, и откуцати следећу команду да креирамо контролер користећи Artisan CLI (Command Line Interface).

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

Заменити <controller-name> са својим именом controller. Ово ће створити а controller. Тхе controller креирана може се погледати у app/Http/Controllers .

Видећете да је неко основно кодирање већ урађено за вас и да можете додати сопствено прилагођено кодирање. Тхе controller креиран може се позвати из веб.пхп са следећом синтаксом.

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

1 : Покрените следећу команду да бисте креирали MyController

php artisan make:controller MyController

2 – Након успешног извршења, добићете следећи излаз.

3 – Пронаћи ћемо контролер креиран у app/Http/Controller/MyController.php са неким већ написаним основним кодом и можемо да извршимо измене по потреби.

Миддлеваре контролера

Већ смо видели middleware а можемо га користити и са controller. Тхе middleware такође се може доделити рути контролера или унутар конструктора контролера. Можете користити метод middleware да доделите middleware al controller. Тхе middleware регистровани такође могу бити ограничени на одређене методе controller.

Додељивање средњег софтвера рути
Route::get('profile', [
   'middleware' => 'auth',
   'uses' => 'UserController@showProfile'
]);

Овде додељујемо средњи софтвер за аутентификацију УсерЦонтроллер-у у путањи профила.

Додељивање средњег софтвера унутар конструктора контролера
<?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 у конструктору МиЦонтроллер .

Напоменути да $this->middleware() фунзиона само ако га доделите у конструктору. Ако позовемо $this->middleware() из одређене методе контролера, неће бацити никакве грешке, али међувера заправо неће радити.

Ова опција је важећа, али лично више волим да ставим сав средњи софтвер у routes, јер је јасније где све тражити middleware.

пример

1 – Хајде да додамо следеће линије кода у датотеку роутес/веб.пхп а ми штедимо.

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

2 – Хајде да створимо а middleware позвао FirstMiddleware покретањем следећег реда кода.

php artisan make:middleware FirstMiddleware

3 : додајте следећи код у методу руковати дел FirstMiddleware управо створен у апп/Хттп/Миддлеваре .

<?php

namespace App\Http\Middleware;
use Closure;

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

4 – Хајде да створимо а middleware позвао СецондМиддлеваре покретањем следеће команде.

php artisan make:middleware SecondMiddleware

5 : хајде да додамо следећи код у методу ручке SecondMiddleware управо створен у апп/Хттп/Миддлеваре .

Иновациони билтен
Не пропустите најважније вести о иновацијама. Пријавите се да их примате путем е-поште.
<?php

namespace App\Http\Middleware;
use Closure;

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

6 : хајде да направимо а controller позвао МиЦонтроллер покретањем следећег реда.

php artisan make:controller MyController

7 – Након што се УРЛ успешно изврши, добићете следећи излаз –

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 artisan serve

10 – Посетите следећу УРЛ адресу.

http://localhost:8000/mycontroller/path

11 – Излаз ће се појавити као што је приказано на следећој слици.

Практично су укључена оба међувера, али само један

Controller di restful resource

Често када креирате апликацију морате нешто да урадите CRUD (Create, Read, Update, Delete)Ларавел олакшава овај посао. Само креирајте а controller а Ларавел ће аутоматски обезбедити све методе за операције 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 – Сада региструјемо све методе МиЦонтроллер-а тако што региструјемо контролер са ресурсом. Испод је табела радњи којима управља контролор ресурса.

ВербПутањаакцијаИме руте
ГЕТ/ мојиндексмој индекс
ГЕТ/ми/цреатестворитими.цреате
ПОСТ/ мојскладиштењемоја радња
ГЕТ/мој/{мој}шоумоја.схов
ГЕТ/мој/{мој}/уредиедитми.едит
ПУТ/ПАТЦХ/мој/{мој}ажурирањеми.упдате
ДЕЛЕТЕ/мој/{мој}уништитимој уништити

5 – Покушајте да покренете УРЛ адресе приказане у табели испод.

УРЛ адресаописИзлаз
http://localhost:8000/myИзвршите индексни метод МиЦонтроллер.пхпиндекс
http://localhost:8000/my/createИзвршите метод креирања МиЦонтроллер.пхпда створи
http://localhost:8000/my/1Извршите схов метод МиЦонтроллер.пхпшоу
http://localhost:8000/my/1/editИзвршите метод за уређивање МиЦонтроллер.пхпедит

Ercole Palmeri

Иновациони билтен
Не пропустите најважније вести о иновацијама. Пријавите се да их примате путем е-поште.

Недавни чланци

Гуглова нова вештачка интелигенција може да моделира ДНК, РНК и "све молекуле живота"

Гоогле ДеепМинд представља побољшану верзију свог модела вештачке интелигенције. Нови побољшани модел пружа не само…

КСНУМКС Мај КСНУМКС

Истраживање Ларавелове модуларне архитектуре

Ларавел, познат по својој елегантној синтакси и моћним карактеристикама, такође пружа солидну основу за модуларну архитектуру. Тамо…

КСНУМКС Мај КСНУМКС

Цисцо Хиперсхиелд и набавка Сплунк-а Нова ера безбедности почиње

Цисцо и Сплунк помажу корисницима да убрзају своје путовање до Центра за безбедносне операције (СОЦ) будућности са…

КСНУМКС Мај КСНУМКС

Изван економске стране: неочигледна цена рансомваре-а

Рансомваре је доминирао вестима последње две године. Већина људи је свесна да напади…

КСНУМКС Мај КСНУМКС

Иновативна интервенција у проширеној стварности, са Аппле гледаоцем у Поликлиници у Катанији

Операција офталмопластике помоћу комерцијалног прегледача Аппле Висион Про обављена је у Поликлиници у Катанији…

КСНУМКС Мај КСНУМКС

Предности бојанка за децу - свет магије за све узрасте

Развијање финих моторичких вештина кроз бојење припрема децу за сложеније вештине попут писања. Боји…

КСНУМКС Мај КСНУМКС

Будућност је ту: Како бродарска индустрија револуционише глобалну економију

Поморски сектор је права глобална економска сила, која је кренула ка тржишту од 150 милијарди...

КСНУМКС Мај КСНУМКС

Издавачи и ОпенАИ потписују уговоре за регулисање протока информација које обрађује вештачка интелигенција

Прошлог понедељка, Финанциал Тимес је објавио договор са ОпенАИ. ФТ лиценцира своје новинарство светске класе…

КСНУМКС април КСНУМКС

Прочитајте Иновације на свом језику

Иновациони билтен
Не пропустите најважније вести о иновацијама. Пријавите се да их примате путем е-поште.

Пратите нас