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


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

  

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM