国产xxxx99真实实拍_久久不雅视频_高清韩国a级特黄毛片_嗯老师别我我受不了了小说

資訊專欄INFORMATION COLUMN

Laravel 從入口到輸出過程詳解

Harriet666 / 3449人閱讀

摘要:預備知識目錄后面簡稱目錄后面簡稱入口文件過程詳解范例定義路由文件路徑修改如下定義中間件中間件路徑新建中間件必須返回響應在處理請求之前做些什么在處理請求之后做些什么中間件處理完畢后,做些什么中間件處理完畢后,做些什么注冊中間件中間件配件文件路

I. 預備知識 Laravel 目錄
/path/to

后面簡稱 Laravel

Web 目錄
Laravel/public

后面簡稱 Web

入口文件
Web/index.php
II. 過程詳解

范例: http://la.com/test/yueshu/female/20?name=chenxuelong

1. 定義 web 路由

文件路徑:

Laravel/routes/web.php

修改如下:

Route::get("/test/{name}/{sex}/{age}" , "TestController@test")
2. 定義中間件 2.1 中間件路徑:
Laravel/app/Http/Middleware
2.2 新建中間件 Test.php
namespace AppHttpMiddleware;

use Closure;

class Test {
    /**
     * 必須返回響應(response)
     */
    public function handle($request , Closure $next){
        // 在處理請求之前做些什么...
        
        $response = $next($request);
        
        // 在處理請求之后做些什么
        
        return $response;
    }
    
    /**
     * 中間件處理完畢后,做些什么
     */
    public function terminate($request , $response){
        // 中間件處理完畢后,做些什么....
    }
}
2.3 注冊中間件

中間件配件文件路徑:

Laravel/app/Http/Kernel.php

routeMiddleware 鍵名下新增:

"Test" => AppHttpMiddlewareTest::class
4. 表單驗證(請求)

文件存放目錄:

Laravel/app/Http/Requests

新建 FormValidate.php 驗證類:

/**
 * 驗證不通過時,通過 header 中的 referer 重定向到
 * 上一頁
 */
namespace AppHttpRequests;

use IlluminateFoundationHttpFormRequest;

class FormValidate extends FormRequest {
    // 是否經過授權的訪問
    public function authorize(){
        return true;
    }  
    
    // 驗證規則
    public function rules(){
        /**
         * required 表示必須
         * max:255  最大長度 255
         */
        return [
            "name" => "required|max:255"
        ];
    }
}
5. 模型

文件路徑:

Laravel/app

新建模型 Test.php

namespace App;

use IlluminateDatabaseEloquentModel;

class Test extends Model {

    // 獲取某張表的所有數據(查詢構造器)
    public function get($table){
        DB::table($table)->get();
    }
    
    // 獲取(原生 sql)
    public function select($sql , $params){
        DB::select($sql , $params);
    }
    
    // 插入(原生 sql)
    public functioin insert($sql , $params){
        DB::insert($sql , $params);
    }
    
    // 更新(原生 sql)
    public function update($sql , $params){
        DB::update($sql , $params);
    }
    
    // 刪除(原生 sql)
    public function delete($sql , $params){
        DB::delete($sql , $params);
    }
    
    // 執行通用 sql(原生 sql)
    public function statement($sql , $params){
        DB::statement($sql , $params);
    }
    
    // 事務
    public function transaction($sql , callable $callback){
        DB::transaction($sql , $callback):
    }
    
    // 手動開啟事務
    public function beginTransaction(){
        DB::beginTransaction();
    }
    
    // 手動回滾
    public function rollBack(){
        DB::rollBack();
    }
    
    // 提交
    public function commit(){
        DB::commit();
    }
    
    
}
6. 控制器

控制器路徑:

Laravel/app/Http/Controllers

新建控制器 TestController.php

namespace AppHttpControllers;

use AppHttpControllersController;

// 引入請求驗證類
use AppHttpRequestsFormValidate;

/* 可選注入模型類(分層)
 * 這邊引入了一個 Test 模型類
 */
use AppTest;

class TestController extends Controller {

    // 構造器(可以添加中間件 或 注入)
    function __construct(Test $test){
        // 添加先前注冊的中間件
        $this->middleware("Test");
        
        // 注入模型類
        $this->test = $test;
    }
    
    /**
     * 路由中設置的動作名稱
     * 通過類型提示,引入請求驗證
     */
    public function test(FormValidate $request , $name , $sex , $age){
        // 通過驗證的請求.....
        $data = [];
        
        if (view()->exists("test")) {
            view("test" , $data);
        } else {
            exit("模板文件不存在....");
        }
    }
}
7. 視圖

視圖路徑:

Laravel/resource/views

新建 test.blade.php 視圖文件

Laravel 從入口到輸出解析完畢!

文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。

轉載請注明本文地址:http://specialneedsforspecialkids.com/yun/25724.html

相關文章

  • Laravel 模板引擎(Blade)原理簡析

    摘要:上次提到過,模板引擎一般是要做三件事情變量值的輸出條件判斷和循環引入或繼承其他文件現在就來看看的模板引擎是如何來處理這三件事情的。引擎接下來就是本文的重點是如何編譯的。如果有興趣的話,也可以實現一個自己的模板解析引擎。 上次提到過,模板引擎一般是要做三件事情: 變量值的輸出(echo) 條件判斷和循環(if ... else、for、foreach、while) 引入或繼承其他文件 ...

    vvpvvp 評論0 收藏0
  • PHP之內置web服務器

    摘要:首發于我的博客前言從開始,就提供了一個內置的服務器。在中的安裝一節中介紹了一個命令可以使用內置服務器實現外部訪問的命令。 首發于:我的博客 前言 PHP從5.4開始,就提供了一個內置的web服務器。 這個主要是用來做本地的開發用的。不能用于線上環境。現在我就介紹一下這個工具如何使用。 基礎應用 首先我們假定項目目錄是/home/baoguoxiao/www/php/demo,外界可訪...

    MorePainMoreGain 評論0 收藏0
  • 高性能千萬級定時任務管理服務forsun laravel插件使用詳解

    摘要:高性能高精度定時服務,輕松管理千萬級定時任務。支持任務到期觸發和。支持創建延時任務和定時到期任務,和原生保持相同接口,輕松使用。不支持任務輸出任務鉤子及維護模式。是不指定任務名時自動生成,每個任務名必須唯一,相同任務名重復定義將會自動覆蓋。 Forsun高性能高精度定時服務,輕松管理千萬級定時任務。 定時服務項目地址:https://github.com/snower/forsun l...

    Muninn 評論0 收藏0
  • 基于 Laravel 開發 ThinkSNS+ 中前端的抉擇(webpack/Vue)踩坑日記【社交

    摘要:在上一篇文章基于分支,從到,再到,簡單的介紹了這里分享在開發過程中,前端選擇的心理活動。而作為核心開發之一,也負責前端這塊的開發。 在上一篇文章《 ThinkSNS+基于Laravel master分支,從1到 0,再到0.1》,簡單的介紹了 ThinkSNS+ ,這里分享在開發過程中,前端選擇的心理活動。 Laravel Mix的放棄 在 Laravel 中,前端工作流默認是由 la...

    songze 評論0 收藏0
  • LaravelLaravel 框架關鍵技術解析·讀書筆記(一)

    摘要:判斷是否存在構造函數,不存在直接實例化,存在則通過來獲取輸入函數,并有相應的方法解決依賴參數問題,實現依賴注入。 Laravel 框架關鍵技術解析·讀書筆記(一) 第一章 入口文件 請求訪問的入口文件,主要完成幾部分工作,分別是: 自動加載函數的添加 服務器實例化與服務注冊 路由加載 請求實例化與路由分發 相應生成與發送 其中,自動加載函數用于包含引用文件,改文件是composer...

    CocoaChina 評論0 收藏0

發表評論

0條評論

Harriet666

|高級講師

TA的文章

閱讀更多
最新活動
閱讀需要支付1元查看
<