laravel中控制器的建立和使用(五)

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
相關文章
相關標籤/搜索