laravel中咱們能夠使用 artisan 命令來幫助咱們建立控制器文件。php
php artisan make:controller TestController
TestController 控制器名咱們能夠任意指定。文件默認會建立在 app\Http\Controllers 目錄下。laravel
打開控制器文件,咱們就能夠添加自已的方法了。web
<?php namespace App\Http\Controllers; use Illuminate\Http\Request; class TestController extends Controller { public function test() { echo 'test...'; } }
在路由文件 routes/web.php 中配置路由就能夠訪問了。restful
Route::get('/test', 'TestController@test');
如何獲取用戶的輸入,通常推薦經過依賴注入的方式來獲取。app
<?php namespace App\Http\Controllers; use Illuminate\Http\Request; class TestController extends Controller { public function test(Request $request) { //獲取全部請求數據 $data = $request->all(); //獲取指定請求數據 $id = $request->input('id'); } }
laravel中爲咱們編寫 restful 風格的代碼,提供了簡單方式,只需在建立控制器命令後面加上 --resource 選項。spa
php artisan make:controller OrderController --resource
laravel幫咱們建立指定的方法,各自表示不一樣的意義和做用。rest
<?php namespace App\Http\Controllers; use Illuminate\Http\Request; class OrderController extends Controller { /** * Display a listing of the resource. * * @return \Illuminate\Http\Response */ public function index() { // } /** * Show the form for creating a new resource. * * @return \Illuminate\Http\Response */ public function create() { // } /** * Store a newly created resource in storage. * * @param \Illuminate\Http\Request $request * @return \Illuminate\Http\Response */ public function store(Request $request) { // } /** * Display the specified resource. * * @param int $id * @return \Illuminate\Http\Response */ public function show($id) { // } /** * Show the form for editing the specified resource. * * @param int $id * @return \Illuminate\Http\Response */ public function edit($id) { // } /** * Update the specified resource in storage. * * @param \Illuminate\Http\Request $request * @param int $id * @return \Illuminate\Http\Response */ public function update(Request $request, $id) { // } /** * Remove the specified resource from storage. * * @param int $id * @return \Illuminate\Http\Response */ public function destroy($id) { // } }
具體方法的做用以下所示:orm
HTTP 方法 | URI | 控制器方法 | 路由名稱 | 做用描述 |
GET | /order | index | order.index | 顯示全部訂單列表 |
GET | /order/create | create | order.create | 顯示建立訂單頁面 |
POST | /order | store | order.store | 接收提交數據,建立訂單 |
GET | /order/{id} | show | order.show | 顯示單個訂單信息 |
GET | /order/{id}/edit | edit | order.edit | 顯示修改訂單頁面 |
PUT/PATCH | /order/{id} | update | order.update | 接收提交數據,修改訂單 |
DELETE | /order/{id} | destroy | order.destroy | 刪除訂單 |
最後咱們經過 Route::resource() 來綁定上面的全部路由。blog
Route::resource('order', 'OrderController');
咱們也能夠經過命令查看,綁定的路由列表。ci
php artisan route:list