laravel中我們可以使用 artisan 命令來幫助我們創建控制器文件。
php artisan make:controller TestController
TestController 控制器名我們可以任意指定。文件默認會創建在 app\Http\Controllers 目錄下。
打開控制器文件,我們就可以添加自已的方法了。
<?php
namespace App\Http\Controllers;
use Illuminate\Http\Request;
class TestController extends Controller
{
public function test()
{
echo 'test...';
}
}
在路由文件 routes/web.php 中配置路由就可以訪問了。
Route::get('/test', 'TestController@test');
如何獲取用戶的輸入,一般推薦通過依賴注入的方式來獲取。
<?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 選項。
php artisan make:controller OrderController --resource
laravel幫我們創建指定的方法,各自表示不同的意義和作用。
<?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)
{
//
}
}
具體方法的作用如下所示:
| 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() 來綁定上面的所有路由。
Route::resource('order', 'OrderController');
我們也可以通過命令查看,綁定的路由列表。
php artisan route:list
