Artikulo

Laravel: Ano ang mga Controller ng laravel

Sa balangkas ng MVC, ang titik na "C" ay nangangahulugang Mga Controller, at sa artikulong ito makikita natin kung paano gamitin ang Mga Controller sa Laravel. Nagsisilbing direktang trapiko sa pagitan ng mga view at modelo. Sa artikulong ito makikita natin kung paano lumikha at mag-setup ng mga controller sa Laravel.

Creare un controller sa laravel

Upang lumikha ng a controller, dapat nating buksan ang command prompt o terminal, ayon sa operating system na ginagamit natin, at i-type ang sumusunod na command para likhain ang controller gamit ang Artisan CLI (Command Line Interface).

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

Palitan <controller-name> gamit ang iyong pangalan controller. Ito ay lilikha ng isang controller. Ang controller ang nilikha ay maaaring matingnan sa app/Http/Controllers .

Makikita mo na ang ilang pangunahing coding ay nagawa na para sa iyo at maaari kang magdagdag ng iyong sariling pasadyang coding. Ang controller ang nilikha ay maaaring tawagan mula sa web.php na may sumusunod na syntax.

palaugnayan
Route::get(‘base URI’,’controller@method’);
halimbawa

1 : Patakbuhin ang sumusunod na command upang lumikha MyController

php artisan make:controller MyController

2 – Pagkatapos ng matagumpay na pagpapatupad, makukuha mo ang sumusunod na output.

3 – Hahanapin natin ang controller na ginawa sa app/Http/Controller/MyController.php na may ilang pangunahing code na nakasulat na at maaari tayong gumawa ng mga pagbabago kung kinakailangan.

Controller middleware

Nakita na namin ang middleware at magagamit din natin ito sa controller. Ang middleware maaari rin itong italaga sa ruta ng controller o sa loob ng tagabuo ng controller. Maaari mong gamitin ang pamamaraan middleware upang italaga ang middleware al controller. Ang middleware ang nakarehistro ay maaari ding limitado sa ilang mga pamamaraan ng controller.

Pagtatalaga ng middleware sa ruta
Route::get('profile', [
   'middleware' => 'auth',
   'uses' => 'UserController@showProfile'
]);

Dito kami ay nagtatalaga ng middleware ng pagpapatotoo sa UserController sa path ng profile.

Pagtatalaga ng middleware sa loob ng tagabuo ng controller
<?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');
   }
}

Dito namin itinatalaga ang middleware ng pagpapatunay gamit ang pamamaraan middleware sa constructor MyController .

Tandaan na $this->middleware() Gumagana siya lamang kung itatalaga mo ito sa constructor. Kung tatawagan natin $this->middleware() mula sa isang tiyak na paraan ng controller, hindi ito magtapon ng anumang mga error ngunit ang middleware ay hindi talaga gagana.

Ang pagpipiliang ito ay wasto, ngunit sa personal mas gusto kong ilagay ang lahat ng middleware sa routes, dahil mas malinaw kung saan hahanapin ang lahat ng middleware.

halimbawa

1 – Idagdag natin ang mga sumusunod na linya ng code sa file ruta/web.php at nagtitipid kami.

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

2 – Gumawa tayo ng a middleware pinangalanan FirstMiddleware sa pamamagitan ng pagpapatakbo ng sumusunod na linya ng code.

php artisan make:middleware FirstMiddleware

3 : idagdag ang sumusunod na code sa pamamaraan pangasiwaan del FirstMiddleware kakagawa lang sa 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 – Gumawa tayo ng a middleware pinangalanan SecondMiddleware sa pamamagitan ng pagpapatakbo ng sumusunod na utos.

php artisan make:middleware SecondMiddleware

5 : idagdag natin ang sumusunod na code sa paraan ng paghawak ng SecondMiddleware kakagawa lang sa app/Http/Middleware .

newsletter ng pagbabago
Huwag palampasin ang pinakamahalagang balita sa pagbabago. Mag-sign up upang matanggap ang mga ito sa pamamagitan ng email.
<?php

namespace App\Http\Middleware;
use Closure;

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

6 : gumawa tayo ng a controller pinangalanan MyController sa pamamagitan ng pagpapatakbo ng sumusunod na linya.

php artisan make:controller MyController

7 – Matapos matagumpay na maipatupad ang url, makukuha mo ang sumusunod na output –

8 – Kopyahin ang sumusunod na code sa file 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 – Ngayon simulan natin ang php internal web server sa pamamagitan ng pagpapatakbo ng sumusunod na command, kung hindi mo pa nagagawa.

php artisan serve

10 – Bisitahin ang sumusunod na URL.

http://localhost:8000/mycontroller/path

11 – Ang output ay lilitaw tulad ng ipinapakita sa sumusunod na larawan.

Halos parehong middleware ang kasangkot, ngunit isa lamang

Controller di restful resource

Kadalasan kapag lumilikha ng isang application kailangan mong gawin ang isang bagay CRUD (Create, Read, Update, Delete)Pinapadali ng Laravel ang trabahong ito. Lumikha lamang ng isang controller at awtomatikong ibibigay ni Laravel ang lahat ng mga pamamaraan para sa mga operasyon CRUD. Maaari rin kaming mag-record ng isang solong landas sa lahat ng mga pamamaraan sa file route.php.

halimbawa

1 : lumikha ng isang controller na tinatawag MyController sa pamamagitan ng pagpapatakbo ng sumusunod na utos.

php artisan make:controller MyController

2 : idagdag ang sumusunod na code sa 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 – Idagdag natin ang sumusunod na linya ng code sa file routes/web.php .

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

4 – Nirerehistro na namin ngayon ang lahat ng paraan ng MyController sa pamamagitan ng pagrehistro ng controller na may mapagkukunan. Nasa ibaba ang talahanayan ng mga aksyon na pinamamahalaan ng resource controller.

PandiwaLandasaksyonPangalan ng Ruta
GET/ akingindexaking index
GET/my/createlumikhaaking.lumikha
POST/ akingmag-imbakaking Tindahan
GET/my/{my}Ipakitamy.show
GET/my/{my}/editi-editmy.edit
ILAGAY/PATCH/my/{my}updatemy.update
ALISIN/my/{my}sirainaking. sirain

5 – Subukang patakbuhin ang mga URL na ipinapakita sa talahanayan sa ibaba.

URLPaglalarawanlumabas
http://localhost:8000/myIpatupad ang paraan ng index ng MyController.phpindex
http://localhost:8000/my/createIsagawa ang paraan ng paglikha ng MyController.phplumikha
http://localhost:8000/my/1Isagawa ang palabas na paraan ng MyController.phpIpakita
http://localhost:8000/my/1/editIsagawa ang paraan ng pag-edit ng MyController.phpi-edit

Ercole Palmeri

newsletter ng pagbabago
Huwag palampasin ang pinakamahalagang balita sa pagbabago. Mag-sign up upang matanggap ang mga ito sa pamamagitan ng email.

Kamakailang Mga Artikulo

Ang bagong artificial intelligence ng Google ay maaaring magmodelo ng DNA, RNA at "lahat ng mga molekula ng buhay"

Ang Google DeepMind ay nagpapakilala ng pinahusay na bersyon ng modelo ng artificial intelligence nito. Ang bagong pinahusay na modelo ay nagbibigay hindi lamang…

9 Mayo 2024

Paggalugad sa Modular Architecture ni Laravel

Ang Laravel, na sikat sa eleganteng syntax at malalakas na feature nito, ay nagbibigay din ng matatag na pundasyon para sa modular na arkitektura. doon…

9 Mayo 2024

Cisco Hypershield at pagkuha ng Splunk Nagsisimula ang bagong panahon ng seguridad

Tinutulungan ng Cisco at Splunk ang mga customer na mapabilis ang kanilang paglalakbay sa Security Operations Center (SOC) ng hinaharap na may…

8 Mayo 2024

Higit pa sa pang-ekonomiyang bahagi: ang hindi halatang halaga ng ransomware

Nangibabaw ang Ransomware sa balita sa nakalipas na dalawang taon. Alam na alam ng karamihan na ang mga pag-atake ay...

6 Mayo 2024

Makabagong interbensyon sa Augmented Reality, kasama ang isang Apple viewer sa Catania Polyclinic

Isang ophthalmoplasty operation gamit ang Apple Vision Pro commercial viewer ay isinagawa sa Catania Polyclinic…

3 Mayo 2024

Ang Mga Benepisyo ng Mga Pangkulay na Pahina para sa mga Bata - isang mundo ng mahika para sa lahat ng edad

Ang pagbuo ng mahusay na mga kasanayan sa motor sa pamamagitan ng pangkulay ay naghahanda sa mga bata para sa mas kumplikadong mga kasanayan tulad ng pagsusulat. Kulayan…

2 Mayo 2024

Narito na ang Hinaharap: Paano Binabago ng Industriya ng Pagpapadala ang Global Economy

Ang sektor ng hukbong-dagat ay isang tunay na pandaigdigang pang-ekonomiyang kapangyarihan, na nag-navigate patungo sa isang 150 bilyong merkado...

1 Mayo 2024

Pumirma ang mga publisher at OpenAI ng mga kasunduan para i-regulate ang daloy ng impormasyong pinoproseso ng Artificial Intelligence

Noong nakaraang Lunes, inihayag ng Financial Times ang isang deal sa OpenAI. Nilisensyahan ng FT ang world-class na pamamahayag nito...

Abril 30 2024