Cov khoom

Laravel: Dab tsi yog laravel Controllers

Hauv MVC lub moj khaum, tsab ntawv "C" sawv cev rau Controllers, thiab hauv tsab xov xwm no peb yuav pom yuav ua li cas siv Controllers hauv Laravel. Ua raws li kev khiav tsheb ncaj qha ntawm kev pom thiab cov qauv. Hauv tsab xov xwm no peb pom yuav ua li cas los tsim thiab teeb tsa cov tswj hwm hauv Laravel.

Creare un controller hauv laravel

Tsim ib tug controller, peb yuav tsum qhib qhov kev hais kom ua lossis lub davhlau ya nyob twg, raws li kev khiav haujlwm peb siv, thiab ntaus cov lus txib hauv qab no los tsim tus maub los siv Artisan CLI (Command Line Interface).

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

Hloov <controller-name> nrog koj lub npe controller. Qhov no yuav tsim ib controller. Cov controller tsim tuaj yeem saib hauv app/Http/Controllers .

Koj yuav pom tias qee qhov kev coding tau ua tiav rau koj thiab koj tuaj yeem ntxiv koj tus kheej kev cai coding. Cov controller tsim tuaj yeem hu los ntawm web.php nrog cov lus hauv qab no.

syntax
Route::get(‘base URI’,’controller@method’);
Piv txwv li

1 : Khiav cov lus txib nram qab no los tsim MyController

php artisan make:controller MyController

2 - Tom qab ua tiav tiav, koj yuav tau txais cov txiaj ntsig hauv qab no.

3 - Peb yuav pom tus maub los tsim hauv app/Http/Controller/MyController.php nrog rau qee qhov kev cai uas twb tau sau lawm thiab peb tuaj yeem hloov pauv raws li xav tau.

Controller nruab nrab

Peb twb pom cov middleware thiab peb kuj tuaj yeem siv nws nrog cov controller. Cov middleware nws kuj tuaj yeem raug xa mus rau txoj kev tswj hwm lossis hauv tus tswj hwm tus tsim qauv. Koj tuaj yeem siv txoj kev middleware mus assign middleware al controller. Cov middleware sau npe kuj tuaj yeem txwv rau qee txoj hauv kev controller.

Muab cov khoom nruab nrab rau txoj kev
Route::get('profile', [
   'middleware' => 'auth',
   'uses' => 'UserController@showProfile'
]);

Ntawm no peb tab tom muab authentication middleware rau UserController hauv txoj kev profile.

Middleware assignment nyob rau hauv lub controller constructor
<?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');
   }
}

Ntawm no peb tab tom muab cov middleware ntawm authentication siv txoj kev middleware nyob rau hauv lub constructor MyController .

Nco ntsoov tias $this->middleware() nws ua haujlwm solo yog tias koj muab nws rau hauv tus tsim. Yog peb hu $this->middleware() los ntawm ib txoj kev tswj hwm tshwj xeeb, nws yuav tsis cuam tshuam qhov yuam kev tab sis cov khoom nruab nrab yuav tsis ua haujlwm.

Qhov kev xaiv no siv tau, tab sis tus kheej Kuv xav muab tag nrho cov khoom nruab nrab rau hauv routes, vim nws yog clearer qhov twg mus nrhiav tag nrho cov middleware.

Piv txwv li

1 - Cia peb ntxiv cov kab hauv qab no ntawm cov lej rau cov ntaub ntawv routes/web.php thiab peb cawm.

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

2 – Cia peb tsim ib middleware xim FirstMiddleware los ntawm kev khiav cov kab hauv qab no ntawm code.

php artisan make:middleware FirstMiddleware

3 : ntxiv cov cai hauv qab no hauv txoj kev lis del FirstMiddleware nyuam qhuav tsim nyob rau hauv 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 – Cia peb tsim ib middleware xim SecondMiddleware los ntawm kev khiav cov lus txib hauv qab no.

php artisan make:middleware SecondMiddleware

5 : cia peb ntxiv cov cai hauv qab no rau hauv txoj kev tuav ntawm tus SecondMiddleware nyuam qhuav tsim nyob rau hauv app/Http/Middleware .

Innovation tsab ntawv xov xwm
Tsis txhob nco cov xov xwm tseem ceeb tshaj plaws ntawm kev tsim kho tshiab. Sau npe kom tau txais lawv los ntawm email.
<?php

namespace App\Http\Middleware;
use Closure;

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

6 : cia peb tsim ib controller xim MyController los ntawm kev khiav cov kab hauv qab no.

php artisan make:controller MyController

7 - Tom qab lub url ua tiav, koj yuav tau txais cov zis hauv qab no -

8 - Luam cov lej hauv qab no rau hauv cov ntaub ntawv 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 - Tam sim no cia peb pib php hauv web server los ntawm kev khiav cov lus txib hauv qab no, yog tias koj tsis tau.

php artisan serve

10 - Mus saib qhov URL hauv qab no.

http://localhost:8000/mycontroller/path

11 - Cov zis yuav tshwm sim raws li qhia hauv daim duab hauv qab no.

Zoo li ob qho tib si nruab nrab tau koom nrog, tab sis tsuas yog ib qho xwb

Controller di restful resource

Feem ntau thaum tsim ib daim ntawv thov koj yuav tsum ua ib yam dab tsi CRUD (Create, Read, Update, Delete)Laravel ua txoj haujlwm no yooj yim. Tsuas yog tsim ib controller thiab Laravel yuav muab txhua txoj hauv kev rau kev ua haujlwm tau txais CRUD. Peb kuj tuaj yeem sau ib txoj hauv kev rau txhua txoj hauv kev hauv cov ntaub ntawv route.php.

Piv txwv li

1 : tsim tus maub los hu ua MyController los ntawm kev khiav cov lus txib hauv qab no.

php artisan make:controller MyController

2 : ntxiv cov cai hauv qab no hauv 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 - Cia peb ntxiv cov kab hauv qab no hauv cov ntaub ntawv routes/web.php .

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

4 - Tam sim no peb tab tom sau npe txhua txoj hauv kev ntawm MyController los ntawm kev tso npe tus tswj hwm nrog cov peev txheej. Hauv qab no yog cov lus ntawm kev nqis tes ua tswj los ntawm tus tswj cov peev txheej.

Lus AskivKabActionRoute npe
TAU/ kuvPerformance indexkuv index
TAU/my/createtsimkuv. tsim
NCEJ/ kuvkhwkuv.kh
TAU/my/{kuv}qhia tau tiaskuv.show
TAU/my/{my}/editkho kom raugkuv.edit
PAUB / PATCH/my/{kuv}updatekuv.update
RHO TAWM/my/{kuv}rhuav tshemkuv. rhuav

5 - Sim khiav cov URLs qhia hauv cov lus hauv qab no.

URLDescrizioneuscita ua
http://localhost:8000/myUa tus txheej txheem index ntawm MyController.phpPerformance index
http://localhost:8000/my/createUa tus tsim qauv ntawm MyController.phpcreare
http://localhost:8000/my/1Ua tus txheej txheem qhia ntawm MyController.phpqhia tau tias
http://localhost:8000/my/1/editUa tus hloov kho txoj kev ntawm MyController.phpkho kom raug

Ercole Palmeri

Innovation tsab ntawv xov xwm
Tsis txhob nco cov xov xwm tseem ceeb tshaj plaws ntawm kev tsim kho tshiab. Sau npe kom tau txais lawv los ntawm email.

Tsis ntev los no cov khoom

Yuav ua li cas sib sau cov ntaub ntawv hauv Excel

Ib qho kev lag luam ua lag luam tsim ntau cov ntaub ntawv, txawm nyob hauv ntau hom ntawv. Manually sau cov ntaub ntawv no los ntawm daim ntawv Excel rau…

14 Tej zaum 2024

Cisco Talos tsom xam peb lub hlis twg: cov tuam txhab email tsom los ntawm cov neeg ua txhaum cai Kev Tsim Kho, Kev Kawm thiab Kev Kho Mob yog cov feem cuam tshuam ntau tshaj plaws

Qhov kev cuam tshuam ntawm tuam txhab email tau nce ntau dua ob npaug hauv thawj peb lub hlis ntawm 2024 piv rau lub quarter kawg ntawm…

14 Tej zaum 2024

Interface segregation txoj cai (ISP), plaub lub ntsiab lus SOLID

Lub hauv paus ntsiab lus ntawm kev sib cais sib cais yog ib qho ntawm tsib lub hauv paus ntsiab lus ntawm kev tsim khoom siv. Ib chav kawm yuav tsum muaj…

14 Tej zaum 2024

Yuav ua li cas npaj cov ntaub ntawv thiab cov qauv zoo tshaj plaws hauv Excel, rau kev tsom xam ua tau zoo

Microsoft Excel yog cov cuab yeej siv rau kev txheeb xyuas cov ntaub ntawv, vim tias nws muaj ntau yam nta rau kev teeb tsa cov ntaub ntawv,…

14 Tej zaum 2024

Cov lus xaus zoo rau ob qhov tseem ceeb Walliance Equity Crowdfunding tej yaam num: Jesolo Wave Island thiab Milano Via Ravenna

Walliance, SIM thiab platform ntawm cov thawj coj hauv Tebchaws Europe hauv thaj tsam ntawm Kev Tsim Kho Vaj Tse Crowdfunding txij thaum 2017, tshaj tawm qhov ua tiav…

13 Tej zaum 2024

Dab tsi yog Filament thiab siv Laravel Filament li cas

Filament yog ib qho "accelerated" Laravel txoj kev loj hlob lub moj khaum, muab ob peb pawg tag nrho. Nws yog tsim los kom yooj yim cov txheej txheem ntawm…

13 Tej zaum 2024

Hauv kev tswj hwm ntawm Artificial Intelligences

"Kuv yuav tsum rov qab los ua kom tiav kuv qhov kev hloov pauv: Kuv yuav ua haujlwm rau kuv tus kheej hauv computer thiab ua lub zog dawb huv. Ib zaug nyob hauv…

10 Tej zaum 2024

Google qhov kev txawj ntse tshiab tuaj yeem ua qauv DNA, RNA thiab "tag nrho cov molecules ntawm lub neej"

Google DeepMind tab tom qhia txog kev txhim kho ntawm nws cov qauv kev txawj ntse. Tus qauv txhim kho tshiab tsis yog tsuas yog…

9 Tej zaum 2024

Nyeem Innovation hauv koj hom lus

Innovation tsab ntawv xov xwm
Tsis txhob nco cov xov xwm tseem ceeb tshaj plaws ntawm kev tsim kho tshiab. Sau npe kom tau txais lawv los ntawm email.

Ua raws li peb