成人国产在线小视频_日韩寡妇人妻调教在线播放_色成人www永久在线观看_2018国产精品久久_亚洲欧美高清在线30p_亚洲少妇综合一区_黄色在线播放国产_亚洲另类技巧小说校园_国产主播xx日韩_a级毛片在线免费

資訊專欄INFORMATION COLUMN

Laravel 從入口到輸出過程詳解

Harriet666 / 3460人閱讀

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

I. 預(yù)備知識 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 {
    /**
     * 必須返回響應(yīng)(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. 表單驗(yàn)證(請求)

文件存放目錄:

Laravel/app/Http/Requests

新建 FormValidate.php 驗(yàn)證類:

/**
 * 驗(yàn)證不通過時(shí),通過 header 中的 referer 重定向到
 * 上一頁
 */
namespace AppHttpRequests;

use IlluminateFoundationHttpFormRequest;

class FormValidate extends FormRequest {
    // 是否經(jīng)過授權(quán)的訪問
    public function authorize(){
        return true;
    }  
    
    // 驗(yàn)證規(guī)則
    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 {

    // 獲取某張表的所有數(shù)據(jù)(查詢構(gòu)造器)
    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);
    }
    
    // 執(zhí)行通用 sql(原生 sql)
    public function statement($sql , $params){
        DB::statement($sql , $params);
    }
    
    // 事務(wù)
    public function transaction($sql , callable $callback){
        DB::transaction($sql , $callback):
    }
    
    // 手動(dòng)開啟事務(wù)
    public function beginTransaction(){
        DB::beginTransaction();
    }
    
    // 手動(dòng)回滾
    public function rollBack(){
        DB::rollBack();
    }
    
    // 提交
    public function commit(){
        DB::commit();
    }
    
    
}
6. 控制器

控制器路徑:

Laravel/app/Http/Controllers

新建控制器 TestController.php

namespace AppHttpControllers;

use AppHttpControllersController;

// 引入請求驗(yàn)證類
use AppHttpRequestsFormValidate;

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

class TestController extends Controller {

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

視圖路徑:

Laravel/resource/views

新建 test.blade.php 視圖文件

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

文章版權(quán)歸作者所有,未經(jīng)允許請勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請注明本文地址:http://systransis.cn/yun/25724.html

相關(guān)文章

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

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

    vvpvvp 評論0 收藏0
  • PHP之內(nèi)置web服務(wù)器

    摘要:首發(fā)于我的博客前言從開始,就提供了一個(gè)內(nèi)置的服務(wù)器。在中的安裝一節(jié)中介紹了一個(gè)命令可以使用內(nèi)置服務(wù)器實(shí)現(xiàn)外部訪問的命令。 首發(fā)于:我的博客 前言 PHP從5.4開始,就提供了一個(gè)內(nèi)置的web服務(wù)器。 這個(gè)主要是用來做本地的開發(fā)用的。不能用于線上環(huán)境?,F(xiàn)在我就介紹一下這個(gè)工具如何使用。 基礎(chǔ)應(yīng)用 首先我們假定項(xiàng)目目錄是/home/baoguoxiao/www/php/demo,外界可訪...

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

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

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

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

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

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

    CocoaChina 評論0 收藏0

發(fā)表評論

0條評論

最新活動(dòng)
閱讀需要支付1元查看
<