1. 一庐椒、框架概述
2. 課程概述
laravel 4天(之前TP框架還是很大的區(qū)別)(國外框架)
在線教育平臺 6天(laravel熟悉+插件+開發(fā)模式)
dedecms 二次開發(fā)
CI框架
2.1. 1浑厚、什么是框架舍沙?
框架是許多代碼的集合将鸵,為項目開發(fā)提供了很多基礎性的代碼。例如常見的參數(shù)過濾饭于,DB類的封裝伸蚯、文件上傳類,圖片處理類膘壶,驗證碼類等等错蝴。程序員只需要將重心放置到業(yè)務邏輯的實現(xiàn),加快開發(fā)的速度颓芭。
一個項目 = 功能性代碼(框架提供) + 業(yè)務邏輯(自己編寫)
什么是MVC的開發(fā)思想顷锰?
M 是 Model的簡寫,負責業(yè)務數(shù)據(jù)處理亡问。
V 是 View的簡寫官紫,負責顯示數(shù)據(jù)和收集數(shù)據(jù)。
C 是Controller的簡寫州藕,負責協(xié)調(diào)(調(diào)度)左右束世。
問題:
在MVC設計思想里面,哪一個是最重要的床玻?
答:M最重要毁涉,數(shù)據(jù)的處理。(MVC 首當其沖是M)
在MVC設計思想里面笨枯,和用戶直接產(chǎn)生關聯(lián)的是哪一個薪丁?答:C 控制器遇西,地址欄 url地址----》模塊下控制器下方法http://local.mvc.com/index.php/Home/View/login方法(邏輯判斷 1. 載入視圖 get 2. 實例化模型post)
在MVC里面如果沒有V視圖層的參數(shù),是否可以正常顯示數(shù)據(jù)严嗜?
答:MCT開發(fā)思想粱檀。(T template模板)可以
html 可以直接 echo "html標簽";? $html = <<
html代碼
HTML;
為什么要使用MVC開發(fā)思想?
現(xiàn)在更多的是個人開發(fā)為主漫玄,但是實際工作開發(fā)肯定是團隊合作為主茄蚯。必然溝通的問題,協(xié)調(diào)的問題睦优。主要是為了團隊的協(xié)作渗常。統(tǒng)一的規(guī)范進行開發(fā),后期容易整合汗盘。最后的維護是容易皱碘。
2.2. 2、為什么要使用框架?(面試)
代碼重用隐孽,很多通用的代碼可以復用癌椿,例如做參數(shù)過濾,可以封裝成一個函數(shù) I('get.id', 0, 'intval')
開發(fā)者只需要關注業(yè)務代碼菱阵,不需要關注框架底層代碼實現(xiàn)踢俄,例如數(shù)據(jù)庫的操作
原生:insert into sh_goods values(xx..x...) mysql mysqli pdo....
框架:D("Goods")->add(I('post.'))
代碼量變少了,開發(fā)速度快晴及,開發(fā)周期短(40-60%)
開發(fā)規(guī)范比較統(tǒng)一都办,例如函數(shù)和類的命名,方便團隊協(xié)作
原生:user.php aaaa.php? bbbbb.php afsdaf.php
框架:UserController.class.php
后期的維護更加方便虑稼,同時功能模塊的擴展也變得容易
弊端:使用框架劣勢琳钉?
答:凡事都有兩面性。
限制人的思維(必須按照框架的規(guī)則來做事)條條框框多(學習成本)(排斥新東西)
兼容性(新版本升級)(TP3.2經(jīng)典? php7新特性蛛倦,TP5里面寫的寫法槽卫,PHP7里面的特性全部發(fā)揮)(TP5使用很多)(TP5里面的大部分的單字母函數(shù)全部廢棄 I( ) C())(面試:問題 會TP5?)
框架本身有性能消耗(為了解決開放性的問題胰蝠,不得已要做很多的兼容性的處理)(開發(fā)優(yōu)先歼培、性能優(yōu)先)laravel開發(fā)優(yōu)先(運維:很少在程序上面出現(xiàn)性能問題、IO操作:mysql數(shù)據(jù)庫---》memcache內(nèi)存緩存茸塞、Redis....)
laravel運行效率低(所有PHP框架里面允許效率最低)
.......
3躲庄、PHP中的主流框架
Zend Framework(俗稱zf框架)
php語言公司官方(zend公司)開發(fā)的框架,重量級框架钾虐;因為官方開發(fā)噪窘,所以需要考慮的方面很全面,導致框架整體很臃腫效扫。
YII(個人產(chǎn)品)
中文叫做易框架倔监,重量級框架直砂,美籍華人薛強進行開發(fā)的框架。最大的特點就是組件化浩习、代碼復用静暂。(不太適合新手進行使用,里面的設計模式谱秽、OOP概念理解很深洽蛀、外貿(mào)電商使用的比較多)不建議:HTML代碼,建議HTML代碼全部使用PHP的類庫進行輸出疟赊。$form
= new FormActive(); $form->open('post', 'url'....)很前端jQuery很緊密郊供。
最先在YII里面提出代碼的復用性的體現(xiàn),為了減少重復性代碼的開發(fā)近哟。研發(fā)了一個叫做GII的模塊驮审,也叫作代碼生成器、也叫作腳手架吉执,主要是做輔助性的開發(fā)头岔,用戶只需要輸入一下表名,即可生成對應curd相關的代碼文件鼠证。這個東西太好用了,所以很多框架爭相模仿靠抑,我們今天學習laravel也提供了類似的工具量九,叫做 artisan命令工具,有了它可以非乘瘫蹋快速的生成一些基礎性的代碼荠列,例如控制器的生成、模型的生成等等......
php artisan make:controller UserController
php artisan make:model User
基本上所有的開發(fā):
商品模塊载城、會員模塊.....
控制器(curd操作)
模型(自動驗證肌似、自動完成....)
三個靜態(tài)頁(add\edt\lst)
處理:
輸入:sh_admin;
生成:五個文件....
Symfony2(企業(yè)使用較多,大企業(yè)使用的偏多)
重量級框架诉瓦,國外框架川队。由于symfony框架開發(fā)的思想太超前了,以至于在很早之前引入很多新的好的特性睬澡。后面很多的其他的產(chǎn)品都借鑒了該框架的特性固额,出來了很多的衍生產(chǎn)品,例如我們今天學習
laravel框架煞聪,就是symfony的兒子(IOC容器)斗躏;同時還有YII框架里面也借鑒了symfony里面的特性(事件模型編程、javascript事件編程)昔脯。
最后還有一點需要注意啄糙,symfony框架是很早之前就和composer進行默契的配合笛臣。同時symfony框架的底層的模板引擎使用的是 twig 模板引擎。
Laravel(重點)
目前是一個非乘肀火的非成虮ぃ火的重路由的框架。需要注意該框架是基于Symfony框架的(Symfony 底層使用composer這個類庫管理軟件)桑李。在學習laravel之前還要學習一下composer這個軟件踱蛀。
Codelgniter (小型)
CI框架,輕量級框架贵白,國外框架(個人開發(fā)的產(chǎn)品率拒,全國使用量,很多人喜歡將該框架作為基礎性的框架禁荒,然后在該框架上加入自己的代碼進行封裝)猬膨,市場上有一定的應用。顯著的特點:按需加載呛伴。
ThinkPHP
ThinkPHP是一個叫做劉晨的中國人開發(fā)的國產(chǎn)框架勃痴。有中文官網(wǎng)、中文幫助文檔热康、中文社區(qū)沛申,以及豐富的百度搜索資源。所以ThinkPHP很適合作為入門級的開發(fā)框架(學習成本是最低)姐军。
下面的介紹的框架都是C語言編寫的框架铁材,是說這個框架本身是用C語言進行編寫,但是編寫完成之后奕锌,將它進行編譯成一個 dll(Windows動態(tài)鏈接庫文件)(php_yaf.dll)著觉,然后在php.ini文件進行引入。
yaf框架
Yaf惊暴,全稱 Yet Another Framework饼丘,是由鳥哥(惠新宸)使用C語言進行開發(fā)的一個高性能的可以作為PHP擴展出現(xiàn)的框架。(Yaf_Abstarct)
除了原生PHP的寫法 yaf框架的性能是最好的辽话。
phalcon框架(國外)
Phalcon 是開源肄鸽、全功能棧、使用 C 擴展編寫油啤、針對高性能優(yōu)化的 PHP 5 框架贴捡。 開發(fā)者不需要學習和使用 C 語言的功能,
因為所有的功能都以 PHP 類的方式暴露出來村砂,可以直接使用烂斋。 Phalcon
也是松耦合的,可以根據(jù)項目的需要任意使用其他對象。Phalcon是一套實現(xiàn)MVC架構(gòu)的高性能PHP應用程序框架汛骂。(文檔很少)性能是僅此于yaf罕模。
php框架性能:
php原生開發(fā)(目前很多公司)> yaf框架(PHP的擴展出現(xiàn),常駐內(nèi)存)>Phalcon> CI框架 > TP|YII > laravel > zf|symfony...
思考:
laravel為什么會在國內(nèi)流行帘瞭?
出現(xiàn)的時機是最合適的淑掌。
代碼相對來說寫起來簡潔,用很少的代碼可以完全多一些蝶念。
laravel設計思想就很超前抛腕,其他的框架沒有及時去運用PHP最新的特性。并且laravel借鑒了很多其他的編程語言的特性媒殉,例如Java担敌、ruby。
擴展性很好(設計模式)廷蓉。
和composer有很好的配合全封,互利共贏。(百度:composer里面提供的類庫大部分是支持laravel)
最后laravel對前端款框架支持也非常友好 laravel + vuejs
.....
3.1. 4桃犬、ORM機制
什么是ORM機制刹悴?object relationship model 對象關系模型。由于現(xiàn)在開發(fā)的主流的思想是面向?qū)ο髮崿F(xiàn)(OOP)攒暇,面向?qū)ο蟮闹黧w是對象土匀。既然面向?qū)ο罂梢院芎玫娜ソ鉀Q現(xiàn)實的問題。
是否可以使用該思想來去操作數(shù)據(jù)庫形用。數(shù)據(jù)庫的操作習慣使用結(jié)構(gòu)化的查詢語句 (SQL 第四代編程語言 select * from user where id = 1)(AI:程序員不值錢就轧,電腦編程 美國:機器人炒股)。
是否可以使用面向?qū)ο蠓绞饺ゲ僮鲾?shù)據(jù)庫尾序?可以、映射關系
模型類(UserModel)? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? 表(sh_user) [行和列]
對象($userModel = new UserModel())? ? ? ? 表中記錄[一行]
屬性($userModel->username)? ? ? ? ? ? ? ? ? 表中字段(username躯砰、password)
方法 ($userModel->select()|find()|upate()|add())? 記錄的操作(curd)
3.2. 5每币、ORM的實現(xiàn)
既然ORM是一種思想,是一種解決問題的方式琢歇。屬于一種抽象的行為兰怠。那么應該想辦法去實現(xiàn)該思想。實現(xiàn)的方式有很多種:
AR模式(Active Record TP里面使用該方式實現(xiàn))
$userModel = D('User'); // 模型類 sh_user;
$userModel->username = 'andy';
$userModel->password = md5('admin88');
$userModel->add();
eloquentORM機制(laravel里面的實現(xiàn))
medoo機制(yaf框架里面有教李茫,yaf框架里面是沒有模型層揭保,模型自己實現(xiàn) pdo功能已經(jīng)足夠強大)..............http://medoo.lvtao.net
了解:面向過程、OOP編程魄宏、AOP編程【面向切面編程】秸侣、面向組件編程....
4. 二、laravel框架
4.1. 1、laravel簡介
laravel是目前一個比較主流的框架味榛,現(xiàn)在很多互聯(lián)網(wǎng)的公司基本都在使用該框架椭坚。該框架是基于symfony【國外一款非常流行的框架:由于國內(nèi)手冊不是很齊全,沒有多少公司使用】的一個國外的MVC框架搏色。
官網(wǎng):https://laravel.com/
國內(nèi)訪問地址:http://www.golaravel.com/
中文社區(qū)網(wǎng)站:https://laravel-china.org/
4.2. 2善茎、開發(fā)環(huán)境要求
laravel框架有運行對環(huán)境是有嚴格要求的。(在Windows下建議使用集成開發(fā)環(huán)境phpstudy這個產(chǎn)品频轿,目前還支持php7,并且可以非常方便的做版本切換。)
注意:如果要使用PHPstudy宵蕉,則必須先關閉之前的wamp環(huán)境(例如Apache溯革、MySQL服務)
注意:安裝的過程中出現(xiàn)vc庫找不到,使用下面的方式進行處理
4.3. 3翠忠、laravel安裝方式簡介
使用專業(yè)的軟件 composer 軟件鞠苟,可以幫我們自動去互聯(lián)網(wǎng)下載開發(fā)過程中所需要的類庫文件和Linux下包管理器yum比較類似,和node.js里面npm 秽之,也和前端里面bower相似当娱。
簡介:http://docs.phpcomposer.com/00-intro.html
國內(nèi)鏡像:https://pkg.phpcomposer.com/
很多其他的語言都有對應的包管理器,但是唯獨PHP里面開啟是沒有的考榨,這個時候就有人提出一種思想跨细,把所有的PHP常見的類庫(上傳、圖片處理河质、分頁類)統(tǒng)一放在一個PHP應用商店冀惭。然后使用一定的工具進行管理,例如下載掀鹅、更新.....
而這這樣的管理工具就是要學習的composer管理工具散休。
使用手工安裝,需要自己去下載laravel的框架的源碼乐尊。http://laravelacademy.org/resources-download
4.4. 4戚丸、composer安裝laravel
在安裝之前,先配置一下composer使用國內(nèi)的鏡像源(只要使用一次即可)
composer config -g repo.packagist composerhttps://packagist.phpcomposer.com
命令行執(zhí)行如下的命令
composer create-project laravel/laravel=5.1.*? local.laravel51.com? --prefer-dist
安裝后的界面:
4.5. 5扔嵌、啟動laravel項目
laravel官方提供一個叫做artisan的腳本限府,可以幫我們快速的完成一些事情,例如啟動項目痢缎,生成控制器文件胁勺,模型文件..........
可以執(zhí)行如下命名的時候,必須是在laravel項目的根目錄
php artisan serve
瀏覽器效果:
4.6. 6独旷、手工安裝laravel
http://laravelacademy.org/resources-download
將下載的文件復制到虛擬主機目錄
在Apache的配置文件配置一個虛擬主機【注意署穗,需要指向 public目錄下】
? ? DocumentRoot "C:\phpStudy\WWW\laravel.dev\public"
? ? ServerName laravel51.dev
? ? ServerAlias phpStudy.net
?
? ? ? Options FollowSymLinks ExecCGI
? ? ? AllowOverride All
? ? ? Order allow,deny
? ? ? Allow from all
? ? ? Require all granted
配置hosts文件
127.0.0.1 laravel51.dev
瀏覽器訪問效果
4.7. 7寥裂、laravel目錄結(jié)構(gòu)分析
4.7.1. 整體目錄
4.7.2. app目錄
4.7.3. http目錄
4.7.4. config目錄
config目錄:主要是存放配置文件信息,laravel的配置信息是分文件保存的蛇捌。
4.7.5. database目錄
database目錄:數(shù)據(jù)遷移和種子文件抚恒。
例如某個數(shù)據(jù)遷移文件:在項目開發(fā)和測試階段使用的較多,上線之后基本不用络拌。
4.7.6. public目錄
public目錄:單入口和系統(tǒng)的靜態(tài)資源(css俭驮、img、js春贸、uploads)
4.7.7. resource目錄
resources目錄:存放視圖文件混萝。
4.7.8. storage目錄
storage目錄:主要是存放緩存文件和日志文件,需要注意:如果是在Linux環(huán)境下萍恕,該目錄需要有可寫的權(quán)限
4.7.9. vendor目錄
vendor目錄:主要是存放第三方的類庫文件逸嘀,laravel思想主要是共同的開發(fā),不要重復的造輪子(例如:里面可能存在驗證碼類允粤、上傳類崭倘、郵件類),還需要注意該目錄還存放laravel框架的源碼类垫。注意:如果使用的composer軟件管理的司光,composer下載的類庫都是存放在該目錄下的。
4.7.10. .env文件
.env文件:主要是設置一些系統(tǒng)相關的環(huán)境配置文件信息悉患。config目錄里面的文件配置內(nèi)容一般都是讀取該文件里面的配置信息(config里面的配置項的值基本都是來自.env文件)残家。
5. 三、laravel入門使用
5.1. 1售躁、路由簡介
因為laravel是一個重路由的框架坞淮。
5.1.1. 什么是路由?
答:路由就是用戶在地址欄里面輸入一個url地址后陪捷,交給后端的那個控制器下的那個方法進行處理的規(guī)則回窘。一般我們需要在專門的路由文件里面,進行定義好市袖。
5.1.2. 為什么要使用路由啡直?
答:laravel里面路由。最新的 TP5里面也是存在路由凌盯。
好處:
url地址變得非常的美觀付枫。(以前沒有路由都是通過偽靜態(tài)處理)
隱藏網(wǎng)站的目錄結(jié)構(gòu)(t.cn/goods/index.php ?)(index.php?m=Home&c=User&a=lst)
防范網(wǎng)絡攻擊.....
5.1.3. 路由文件在哪里烹玉,以及規(guī)則如何編寫驰怎?
5.2. 2、路由入門使用
// laravel內(nèi)置了一個Route類二打,提供了很多方法 一般是根據(jù)http的請求來命名
// 例如: 1. get 2. post 3. any 4. match .....
// get方法是處理 get請求 第一個參數(shù):代表是請求的url地址的uri部分
// 第二個參數(shù):1. 匿名函數(shù) 2. 字符串(控制器下的某個方法)
// 1. 匿名函數(shù) 返回值作為http的響應返回給瀏覽器
// 2. 控制器里面的方法執(zhí)行作為響應
// url:http://local.laravel51.com/
Route::get('/', function () {
? return 'hello';
? ? // return view('welcome');
});
// url:http://local.laravel51.com/about
Route::get('/about', function () {
? return 'about';
? ? // return view('welcome');
});
5.3. 3县忌、視圖使用
5.3.1. 視圖載入
學習:
視圖寫在哪里?
視圖文件如何命名?
視圖里面的內(nèi)容和編寫症杏?
視圖是否可以分目錄管理装获?
視圖如何被載入?
如何視圖賦值厉颤?
效果:
5.4. 4穴豫、blade模板引擎
5.4.1. 截圖
在routes.php里面定義一個/user/login路由
建立 login.blade.php視圖文件
在routes.php里面定義一個/blade路由
建立 show.blade.php視圖文件
注意:laravel模板引擎和 vuejs的沖突解決
5.4.2. 代碼
5.4.2.1. routes.php路由文件
/*
|--------------------------------------------------------------------------
| Application Routes
|--------------------------------------------------------------------------
|
| Here is where you can register all of the routes for an application.
| It's a breeze. Simply tell Laravel the URIs it should respond to
| and give it the controller to call when that URI is requested.
|
*/
// laravel內(nèi)置了一個Route類,提供了很多方法 一般是根據(jù)http的請求來命名 例如: 1. get 2. post 3. any 4. match .....
// get方法是處理 get請求 第一個參數(shù):代表是請求的url地址的uri部分 第二個參數(shù): 1. 匿名函數(shù) 2. 字符串(控制器下的某個方法)
// url:http://local.laravel51.com/
// 1. 匿名函數(shù) 返回值作為http的響應返回給瀏覽器
// 2. 控制器里面的方法執(zhí)行
Route::get('/', function () {
? return 'hello';
? ? // return view('welcome');
});
// url:http://local.laravel51.com/about
Route::get('/about', function () {
? return 'about';
? ? // return view('welcome');
});
// 1. 視圖寫哪里逼友? 2. 視圖文件名如何命名? 3. 視圖里面內(nèi)容 4. 視圖是否可以分目錄管理 5. 視圖如何被載入 6. 如何視圖賦值
// url:http://local.laravel51.com/user/login
Route::get('/user/login', function () {
? // view() 函數(shù)是用于載入視圖的 視圖寫在哪里精肃? 如何命名?
? // /resources/views/視圖文件名稱.blade.php? 文件的后綴 .blade.php必須這樣帜乞,因為laravel內(nèi)部使用的一個模板:blade
? $info = 'Lorem ipsum dolor sit amet, consectetur adipisicing elit. Quod consequatur nisi excepturi debitis mollitia autem quis dolores error nulla, ea cumque vero quas beatae eveniet molestias expedita cupiditate. Itaque, culpa!'; // 賦值
? $title = 'Lorem ipsum dolor sit amet, consectetur.';
? // 兩種方式:
? // with 第一個參數(shù)是視圖調(diào)用名稱 第二個參數(shù)變量信息
? // 第二種: 直接給view函數(shù)傳遞第二個參數(shù)司抱,關聯(lián)數(shù)組,key視圖調(diào)用名稱 value變量信息
? $key = 'Lorem ipsum dolor sit amet, consectetur adipisicing elit. Officiis alias assumenda dolorum vel animi quo mollitia possimus neque quod illum!';
? $age = 12;
? // 復合數(shù)據(jù)類型 [] 數(shù)組 php5.4語法
? $userData = [
? ? ['id' => 1, 'username' => 'Lorem ipsum dolor sit amet, consectetur adipisicing.'],
? ? ['id' => 2, 'username' => 'Lorem ipsum dolor sit.'],
? ? ['id' => 3, 'username' => 'ruby'],
? ];
? // 通過賦值操作可以在視圖里面顯示數(shù)據(jù)信息黎烈,但是通過第二種方式寫起來還是很麻煩习柠。 key value key value
/*? ? return view('home.user.login', ['key' => $key, 'age' => $age, 'userData' => $userData])
? ? ? ->with('info', $info)
? ? ? ->with('title', $title);
*/? ? // 文件夾的分隔符使用的 /? laravel建議使用 .
? ? // 賦值簡化操作
? ? // compact('info', 'title', 'key', 'age', 'userData') 可以將數(shù)據(jù)轉(zhuǎn)換為 關鍵數(shù)組 參數(shù):是變量名
? ? return view('home.user.login', compact('info', 'title', 'key', 'age', 'userData'));
});
// 視圖里面的模板引擎 blade 1. 基本數(shù)據(jù)輸出 2. 復合數(shù)據(jù)類型輸出 3. 邏輯判斷
Route::get('/blade', function ()
{
? $title = '模板引擎';
? $userData = [
? ? ['id' => 1, 'username' => 'Lorem ipsum dolor sit amet, consectetur adipisicing.'],
? ? ['id' => 2, 'username' => 'Lorem ipsum dolor sit.'],
? ? ['id' => 3, 'username' => 'ruby'],
? ];
? $isBoolean = false;
? $info = '這個是真的!';
? return view('show', compact('title', 'userData', 'info', 'isBoolean'));
});
5.4.2.2. show.blade.php視圖文件
?
?
? ?
?
? blade模板引擎
?
? ?
原生PHP
? ?
? ?
? ?
? ? {{-- 短標記語法PHP --}}
? ?
? ?
? ?
blade模板引擎
? ? {{-- 這兩個大括號被叫做 插值表達式照棋,計算內(nèi)部的表達式资溃,最終的結(jié)果放置在這里 --}}
? ? {{-- vuejs 也是使用的插值表達式 --}}
? ?
{{ $title }}
? ?
{{? 1 + 1 }}
? ?
{{? 3 * 8 }}
? ?
邏輯運算
? ?
{{ !false }}
? ? {{-- 三目運算 --}}
? ?
{{ 1 > 2 ? '假的' : '真的' }}
? ?
? ?
復合數(shù)據(jù)類型輸出
? ? @foreach ($userData as $v)
? ? ?
? ? ?
? ? @endforeach
? ?
? ? @if ( $isBoolean )
? ? ? {{? $info }}
? ? @endif
? ?
? ? @if ( $isBoolean )
? ? ? 這個是真的...........
? ? @else
? ? ? 假的的...........
? ? @endif
? {{-- 問題: laravel和 vue 相遇了? --}}
?
? ?
? ? ? {{-- 不想讓 laravel進行解析,前端vuejs 在瀏覽器里面解析 --}}
? ? ? {{-- vuejs 前端MVVM框架 --}}
? ? ?
@{{? msg }}
? new Vue({
? ? el: '#box',
? ? data: {
? ? ? 'msg' : 'Lorem ipsum dolor sit amet, consectetur adipisicing elit. Sint, distinctio doloremque assumenda dicta veritatis repellendus maxime ut commodi ipsum necessitatibus ullam nihil! Saepe ab labore aliquam facilis placeat id incidunt.'
? ? }
? });
5.4.2.3. login.blade.php視圖文件
?
?
? ?
?
? user-login頁面
?
? ?
user-login頁面
? ?
? ?
原生PHP
? ?
? ?
blade模板引擎
? ?
{{ time() }}
? ?
? ?
? ?
? ?
? ?
? ?
? ?
? ?
? ?
? ?
復合數(shù)據(jù)類型: 數(shù)據(jù)遍歷操作
? ?
? ? ? ?
? ? ? ?
?
? ?
? ? ?
? ? ? ? 用戶名:
? ? ? ?
? ? ?
? ? ? ? 密碼:
? ? ? ?
? ? ?
? ? ? ?
? ? ? ?
5.5. 4必怜、控制器使用
通過上面的操作肉拓,我們發(fā)現(xiàn)基本將代碼都寫在routes.php路由文件,這樣不利于后期的開發(fā)和維護梳庆。一般會將用戶的請求交給控制器下的某個方法來處理暖途。在方法里面完成業(yè)務邏輯。
思考:
控制器寫在哪里膏执?
控制器文件名如何命名驻售?
控制器里面的內(nèi)容如何編寫?
控制器里面如何載入視圖更米?
控制器里面如何賦值欺栗?
控制器里面的方法如何被調(diào)用?
如何在控制器里面實例化模型征峦?
如何通過模型獲取數(shù)據(jù)迟几?
5.6. 5、artisan命令-控制器
5.7. 使用 artisan 命令生成控制器的默認行為
效果:
代碼內(nèi)容:
5.8. 使用 artisan 命令生成控制器的不要帶方法
代碼內(nèi)容:
5.9. 使用 artisan 命令生成控制器的分目錄管理
代碼內(nèi)容:
6. 常見錯誤
6.1. 加密密鑰生成
解決:
6.2. 404錯誤
如果沒有在路由文件里面定義路由規(guī)則栏笆,直接請求类腮,會提示如下的信息: