Laravel學(xué)習(xí)教程之從入口到輸出過(guò)程詳解
本文主要給大家介紹了關(guān)于Laravel從入口到輸出過(guò)程的相關(guān)內(nèi)容,分享出來(lái)供大家參考學(xué)習(xí),下面話不多說(shuō)了,來(lái)一起看看詳細(xì)的介紹吧。
I. 預(yù)備知識(shí)
Laravel 目錄
/path/to
后面簡(jiǎn)稱 Laravel
Web 目錄
Laravel/public
后面簡(jiǎn)稱 Web
入口文件
Web/index.php
II. 過(guò)程詳解
范例: 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 App\Http\Middleware;
use Closure;
class Test {
/**
* 必須返回響應(yīng)(response)
*/
public function handle($request , Closure $next){
// 在處理請(qǐng)求之前做些什么...
$response = $next($request);
// 在處理請(qǐng)求之后做些什么
return $response;
}
/**
* 中間件處理完畢后,做些什么
*/
public function terminate($request , $response){
// 中間件處理完畢后,做些什么....
}
}
2.3 注冊(cè)中間件
中間件配件文件路徑:
Laravel/app/Http/Kernel.php
在 routeMiddleware 鍵名下新增:
'Test' => \App\Http\Middleware\Test::class
4. 表單驗(yàn)證(請(qǐng)求)
文件存放目錄:
Laravel/app/Http/Requests
新建 FormValidate.php 驗(yàn)證類:
/**
* 驗(yàn)證不通過(guò)時(shí),通過(guò) header 中的 referer 重定向到
* 上一頁(yè)
*/
namespace App\Http\Requests;
use Illuminate\Foundation\Http\FormRequest;
class FormValidate extends FormRequest {
// 是否經(jīng)過(guò)授權(quán)的訪問(wèn)
public function authorize(){
return true;
}
// 驗(yàn)證規(guī)則
public function rules(){
/**
* required 表示必須
* max:255 最大長(zhǎng)度 255
*/
return [
'name' => 'required|max:255'
];
}
}
5. 模型
文件路徑:
Laravel/app
新建模型 Test.php
namespace App;
use Illuminate\Database\Eloquent\Model;
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 App\Http\Controllers;
use App\Http\Controllers\Controller;
// 引入請(qǐng)求驗(yàn)證類
use App\Http\Requests\FormValidate;
/* 可選注入模型類(分層)
* 這邊引入了一個(gè) Test 模型類
*/
use App\Test;
class TestController extends Controller {
// 構(gòu)造器(可以添加中間件 或 注入)
function __construct(Test $test){
// 添加先前注冊(cè)的中間件
$this->middleware('Test');
// 注入模型類
$this->test = $test;
}
/**
* 路由中設(shè)置的動(dòng)作名稱
* 通過(guò)類型提示,引入請(qǐng)求驗(yàn)證
*/
public function test(FormValidate $request , $name , $sex , $age){
// 通過(guò)驗(yàn)證的請(qǐng)求.....
$data = [];
if (view()->exists('test')) {
view('test' , $data);
} else {
exit('模板文件不存在....');
}
}
}
7. 視圖
視圖路徑:
Laravel/resource/views
新建 test.blade.php 視圖文件
<h1>Laravel 從入口到輸出解析完畢!</h1>
總結(jié)
以上就是這篇文章的全部?jī)?nèi)容了,希望本文的內(nèi)容對(duì)大家的學(xué)習(xí)或者工作能帶來(lái)一定的幫助,如果有疑問(wèn)大家可以留言交流,謝謝大家對(duì)腳本之家的支持。
- Laravel框架源碼解析之反射的使用詳解
- Laravel源碼解析之路由的使用和示例詳解
- 通過(guò)源碼解析Laravel的依賴注入
- 源碼分析 Laravel 重復(fù)執(zhí)行同一個(gè)隊(duì)列任務(wù)的原因
- Laravel框架數(shù)據(jù)庫(kù)CURD操作、連貫操作總結(jié)
- PHP開發(fā)框架Laravel數(shù)據(jù)庫(kù)操作方法總結(jié)
- Laravel框架表單驗(yàn)證詳解
- Laravel框架中擴(kuò)展函數(shù)、擴(kuò)展自定義類的方法
- Laravel框架路由配置總結(jié)、設(shè)置技巧大全
- PHP的Laravel框架中使用消息隊(duì)列queue及異步隊(duì)列的方法
- PHP框架Laravel插件Pagination實(shí)現(xiàn)自定義分頁(yè)
- Laravel 5框架學(xué)習(xí)之向視圖傳送數(shù)據(jù)
- Laravel框架源碼解析之入口文件原理分析
相關(guān)文章
phpstorm動(dòng)態(tài)調(diào)試環(huán)境部署過(guò)程
這篇文章主要介紹了php代碼審計(jì)phpstorm動(dòng)態(tài)調(diào)試的過(guò)程,xdebug調(diào)試調(diào)試環(huán)境部署的操作過(guò)程,本文給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2022-04-04
php curl登陸qq后獲取用戶信息時(shí)證書錯(cuò)誤
這篇文章主要介紹了php curl登陸qq后獲取用戶信息時(shí)證書錯(cuò)誤,需要的朋友可以參考下2015-02-02
linux mint下安裝phpstorm2020包括JDK部分的教程詳解
這篇文章主要介紹了linux mint下安裝phpstorm2020包括JDK部分的教程詳解,本文給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2020-09-09
基于PHP實(shí)現(xiàn)用戶注冊(cè)登錄功能
本課程通過(guò)使用PHP及Web前端技術(shù)實(shí)現(xiàn)一個(gè)網(wǎng)站注冊(cè)登錄入口頁(yè)面,學(xué)習(xí)并實(shí)踐PHP編程等,有興趣的同學(xué)可以參考一下。2016-10-10
phpcms手機(jī)內(nèi)容頁(yè)面添加上一篇和下一篇
本文給大家分享的是在phpcms中的手機(jī)內(nèi)容詳情頁(yè)里添加上一篇和下一篇的方法,十分的簡(jiǎn)單實(shí)用,有需要的小伙伴可以參考下。2015-06-06

