Creare un controller
sa laravelUpang 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.
Route::get(‘base URI’,’controller@method’);
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.
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
.
Route::get('profile', [
'middleware' => 'auth',
'uses' => 'UserController@showProfile'
]);
Dito kami ay nagtatalaga ng middleware ng pagpapatotoo sa UserController sa path ng profile.
<?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
.
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 .
<?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
.
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.
Pandiwa | Landas | aksyon | Pangalan ng Ruta |
---|---|---|---|
GET | / aking | index | aking index |
GET | /my/create | lumikha | aking.lumikha |
POST | / aking | mag-imbak | aking Tindahan |
GET | /my/{my} | Ipakita | my.show |
GET | /my/{my}/edit | i-edit | my.edit |
ILAGAY/PATCH | /my/{my} | update | my.update |
ALISIN | /my/{my} | sirain | aking. sirain |
5 – Subukang patakbuhin ang mga URL na ipinapakita sa talahanayan sa ibaba.
URL | Paglalarawan | lumabas |
---|---|---|
http://localhost:8000/my | Ipatupad ang paraan ng index ng MyController.php | index |
http://localhost:8000/my/create | Isagawa ang paraan ng paglikha ng MyController.php | lumikha |
http://localhost:8000/my/1 | Isagawa ang palabas na paraan ng MyController.php | Ipakita |
http://localhost:8000/my/1/edit | Isagawa ang paraan ng pag-edit ng MyController.php | i-edit |
Ercole Palmeri
Ang Google DeepMind ay nagpapakilala ng pinahusay na bersyon ng modelo ng artificial intelligence nito. Ang bagong pinahusay na modelo ay nagbibigay hindi lamang…
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…
Tinutulungan ng Cisco at Splunk ang mga customer na mapabilis ang kanilang paglalakbay sa Security Operations Center (SOC) ng hinaharap na may…
Nangibabaw ang Ransomware sa balita sa nakalipas na dalawang taon. Alam na alam ng karamihan na ang mga pag-atake ay...
Isang ophthalmoplasty operation gamit ang Apple Vision Pro commercial viewer ay isinagawa sa Catania Polyclinic…
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…
Ang sektor ng hukbong-dagat ay isang tunay na pandaigdigang pang-ekonomiyang kapangyarihan, na nag-navigate patungo sa isang 150 bilyong merkado...
Noong nakaraang Lunes, inihayag ng Financial Times ang isang deal sa OpenAI. Nilisensyahan ng FT ang world-class na pamamahayag nito...