我也玩LARAVEL

一、框架概述

課程概述

laravel 4天(之前TP框架還是很大的區(qū)別)(國外框架)

在線教育平臺(tái) 6天(laravel熟悉+插件+開發(fā)模式)

dedecms 二次開發(fā)

CI框架

1、什么是框架?

框架是許多代碼的集合煌恢,為項(xiàng)目開發(fā)提供了很多基礎(chǔ)性的代碼骗卜。例如常見的參數(shù)過濾宠页,DB類的封裝、文件上傳類寇仓,圖片處理類举户,驗(yàn)證碼類等等。程序員只需要將重心放置到業(yè)務(wù)邏輯的實(shí)現(xiàn)遍烦,加快開發(fā)的速度俭嘁。

一個(gè)項(xiàng)目 = 功能性代碼(框架提供) + 業(yè)務(wù)邏輯(自己編寫)

什么是MVC的開發(fā)思想?

M 是 Model的簡寫服猪,負(fù)責(zé)業(yè)務(wù)數(shù)據(jù)處理熙侍。

V 是 View的簡寫馅袁,負(fù)責(zé)顯示數(shù)據(jù)和收集數(shù)據(jù)。

C 是Controller的簡寫,負(fù)責(zé)協(xié)調(diào)(調(diào)度)左右付魔。

問題:

在MVC設(shè)計(jì)思想里面,哪一個(gè)是最重要的叨吮?

答:M最重要形纺,數(shù)據(jù)的處理薇缅。(MVC 首當(dāng)其沖是M)

在MVC設(shè)計(jì)思想里面,和用戶直接產(chǎn)生關(guān)聯(lián)的是哪一個(gè)攒磨?

答:C 控制器泳桦,地址欄 url地址----》模塊下控制器下方法

http://local.mvc.com/index.php/Home/View/login方法(邏輯判斷 1. 載入視圖 get 2. 實(shí)例化模型post)

在MVC里面如果沒有V視圖層的參數(shù),是否可以正常顯示數(shù)據(jù)娩缰?

答:MCT開發(fā)思想灸撰。(T template模板)可以

html 可以直接 echo "html標(biāo)簽";? $html = <<

html代碼

HTML;

為什么要使用MVC開發(fā)思想?

現(xiàn)在更多的是個(gè)人開發(fā)為主拼坎,但是實(shí)際工作開發(fā)肯定是團(tuán)隊(duì)合作為主浮毯。必然溝通的問題,協(xié)調(diào)的問題演痒。主要是為了團(tuán)隊(duì)的協(xié)作亲轨。統(tǒng)一的規(guī)范進(jìn)行開發(fā),后期容易整合鸟顺。最后的維護(hù)是容易惦蚊。

2、為什么要使用框架?(面試)

代碼重用讯嫂,很多通用的代碼可以復(fù)用蹦锋,例如做參數(shù)過濾,可以封裝成一個(gè)函數(shù) I('get.id', 0, 'intval')

開發(fā)者只需要關(guān)注業(yè)務(wù)代碼欧芽,不需要關(guān)注框架底層代碼實(shí)現(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ù)和類的命名,方便團(tuán)隊(duì)協(xié)作

原生:user.php aaaa.php? bbbbb.php afsdaf.php

框架:UserController.class.php

后期的維護(hù)更加方便曲楚,同時(shí)功能模塊的擴(kuò)展也變得容易

弊端:使用框架劣勢厘唾?

答:凡事都有兩面性。

限制人的思維(必須按照框架的規(guī)則來做事)條條框框多(學(xué)習(xí)成本)(排斥新東西)

兼容性(新版本升級)(TP3.2經(jīng)典? php7新特性龙誊,TP5里面寫的寫法抚垃,PHP7里面的特性全部發(fā)揮)(TP5使用很多)(TP5里面的大部分的單字母函數(shù)全部廢棄 I( ) C())(面試:問題 會(huì)TP5?)

框架本身有性能消耗(為了解決開放性的問題趟大,不得已要做很多的兼容性的處理)(開發(fā)優(yōu)先鹤树、性能優(yōu)先)laravel開發(fā)優(yōu)先(運(yùn)維:很少在程序上面出現(xiàn)性能問題、IO操作:mysql數(shù)據(jù)庫---》memcache內(nèi)存緩存逊朽、Redis....) laravel運(yùn)行效率低(所有PHP框架里面允許效率最低)

.......

3罕伯、PHP中的主流框架

Zend Framework(俗稱zf框架)

php語言公司官方(zend公司)開發(fā)的框架,重量級框架叽讳;因?yàn)楣俜介_發(fā)追他,所以需要考慮的方面很全面熊昌,導(dǎo)致框架整體很臃腫。

image.png

YII(個(gè)人產(chǎn)品)

中文叫做易框架湿酸,重量級框架,美籍華人薛強(qiáng)進(jìn)行開發(fā)的框架灭美。最大的特點(diǎn)就是組件化推溃、代碼復(fù)用。(不太適合新手進(jìn)行使用届腐,里面的設(shè)計(jì)模式铁坎、OOP概念理解很深、外貿(mào)電商使用的比較多)不建議:HTML代碼犁苏,建議HTML代碼全部使用PHP的類庫進(jìn)行輸出硬萍。$form = new FormActive(); $form->open('post', 'url'....)很前端jQuery很緊密。

image.png

最先在YII里面提出代碼的復(fù)用性的體現(xiàn)围详,為了減少重復(fù)性代碼的開發(fā)朴乖。研發(fā)了一個(gè)叫做GII的模塊,也叫作代碼生成器助赞、也叫作腳手架买羞,主要是做輔助性的開發(fā),用戶只需要輸入一下表名雹食,即可生成對應(yīng)curd相關(guān)的代碼文件畜普。這個(gè)東西太好用了,所以很多框架爭相模仿群叶,我們今天學(xué)習(xí)laravel也提供了類似的工具吃挑,叫做 artisan命令工具,有了它可以非辰至ⅲ快速的生成一些基礎(chǔ)性的代碼舶衬,例如控制器的生成、模型的生成等等......

php artisan make:controller UserController

php artisan make:model User

基本上所有的開發(fā):

商品模塊几晤、會(huì)員模塊.....

控制器(curd操作)

模型(自動(dòng)驗(yàn)證约炎、自動(dòng)完成....)

三個(gè)靜態(tài)頁(add\edt\lst)

處理:

輸入:sh_admin;

生成:五個(gè)文件....

Symfony2(企業(yè)使用較多,大企業(yè)使用的偏多)

重量級框架蟹瘾,國外框架圾浅。由于symfony框架開發(fā)的思想太超前了,以至于在很早之前引入很多新的好的特性憾朴。后面很多的其他的產(chǎn)品都借鑒了該框架的特性狸捕,出來了很多的衍生產(chǎn)品,例如我們今天學(xué)習(xí) laravel框架众雷,就是symfony的兒子(IOC容器)灸拍;同時(shí)還有YII框架里面也借鑒了symfony里面的特性(事件模型編程做祝、javascript事件編程)。

最后還有一點(diǎn)需要注意鸡岗,symfony框架是很早之前就和composer進(jìn)行默契的配合混槐。同時(shí)symfony框架的底層的模板引擎使用的是 twig 模板引擎。

image.png

Laravel(重點(diǎn))

目前是一個(gè)非承裕火的非成牵火的重路由的框架。需要注意該框架是基于Symfony框架的(Symfony 底層使用composer這個(gè)類庫管理軟件)揣苏。在學(xué)習(xí)laravel之前還要學(xué)習(xí)一下composer這個(gè)軟件悯嗓。

image.png

Codelgniter (小型)

CI框架,輕量級框架卸察,國外框架(個(gè)人開發(fā)的產(chǎn)品脯厨,全國使用量,很多人喜歡將該框架作為基礎(chǔ)性的框架坑质,然后在該框架上加入自己的代碼進(jìn)行封裝)合武,市場上有一定的應(yīng)用。顯著的特點(diǎn):按需加載洪乍。

image.png

ThinkPHP

ThinkPHP是一個(gè)叫做劉晨的中國人開發(fā)的國產(chǎn)框架眯杏。有中文官網(wǎng)、中文幫助文檔壳澳、中文社區(qū)岂贩,以及豐富的百度搜索資源。所以ThinkPHP很適合作為入門級的開發(fā)框架(學(xué)習(xí)成本是最低)巷波。

image.png

下面的介紹的框架都是C語言編寫的框架萎津,是說這個(gè)框架本身是用C語言進(jìn)行編寫,但是編寫完成之后抹镊,將它進(jìn)行編譯成一個(gè) dll(Windows動(dòng)態(tài)鏈接庫文件)(php_yaf.dll)锉屈,然后在php.ini文件進(jìn)行引入。

yaf框架

Yaf垮耳,全稱 Yet Another Framework颈渊,是由鳥哥(惠新宸)使用C語言進(jìn)行開發(fā)的一個(gè)高性能的可以作為PHP擴(kuò)展出現(xiàn)的框架。(Yaf_Abstarct)

image.png

除了原生PHP的寫法 yaf框架的性能是最好的终佛。

phalcon框架(國外)

Phalcon 是開源俊嗽、全功能棧、使用 C 擴(kuò)展編寫铃彰、針對高性能優(yōu)化的 PHP 5 框架绍豁。 開發(fā)者不需要學(xué)習(xí)和使用 C 語言的功能, 因?yàn)樗械墓δ芏家?PHP 類的方式暴露出來牙捉,可以直接使用竹揍。 Phalcon 也是松耦合的敬飒,可以根據(jù)項(xiàng)目的需要任意使用其他對象。Phalcon是一套實(shí)現(xiàn)MVC架構(gòu)的高性能PHP應(yīng)用程序框架芬位。(文檔很少)性能是僅此于yaf无拗。

image.png

php框架性能:

php原生開發(fā)(目前很多公司)> yaf框架(PHP的擴(kuò)展出現(xiàn),常駐內(nèi)存)>Phalcon> CI框架 > TP|YII > laravel > zf|symfony...

思考:

laravel為什么會(huì)在國內(nèi)流行昧碉?

出現(xiàn)的時(shí)機(jī)是最合適的蓝纲。

代碼相對來說寫起來簡潔,用很少的代碼可以完全多一些晌纫。

laravel設(shè)計(jì)思想就很超前,其他的框架沒有及時(shí)去運(yùn)用PHP最新的特性永丝。并且laravel借鑒了很多其他的編程語言的特性锹漱,例如Java、ruby慕嚷。

擴(kuò)展性很好(設(shè)計(jì)模式)哥牍。

和composer有很好的配合,互利共贏喝检。(百度:composer里面提供的類庫大部分是支持laravel)

最后laravel對前端款框架支持也非常友好 laravel + vuejs

.....

4嗅辣、ORM機(jī)制

什么是ORM機(jī)制?

object relationship model 對象關(guān)系模型挠说。由于現(xiàn)在開發(fā)的主流的思想是面向?qū)ο髮?shí)現(xiàn)(OOP)澡谭,面向?qū)ο蟮闹黧w是對象。既然面向?qū)ο罂梢院芎玫娜ソ鉀Q現(xiàn)實(shí)的問題损俭。

是否可以使用該思想來去操作數(shù)據(jù)庫蛙奖。數(shù)據(jù)庫的操作習(xí)慣使用結(jié)構(gòu)化的查詢語句 (SQL 第四代編程語言 select * from user where id = 1)(AI:程序員不值錢,電腦編程 美國:機(jī)器人炒股)杆兵。

是否可以使用面向?qū)ο蠓绞饺ゲ僮鲾?shù)據(jù)庫雁仲?可以、映射關(guān)系

模型類(UserModel)? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? 表(sh_user) [行和列]

對象($userModel = new UserModel())? ? ? ? 表中記錄[一行]

屬性($userModel->username)? ? ? ? ? ? ? ? ? 表中字段(username琐脏、password)

方法 ($userModel->select()|find()|upate()|add())? 記錄的操作(curd)

5攒砖、ORM的實(shí)現(xiàn)

既然ORM是一種思想,是一種解決問題的方式日裙。屬于一種抽象的行為吹艇。那么應(yīng)該想辦法去實(shí)現(xiàn)該思想。實(shí)現(xiàn)的方式有很多種:

AR模式(Active Record TP里面使用該方式實(shí)現(xiàn))

$userModel = D('User'); // 模型類 sh_user;

$userModel->username = 'andy';

$userModel->password = md5('admin88');

$userModel->add();

eloquentORM機(jī)制(laravel里面的實(shí)現(xiàn))

medoo機(jī)制(yaf框架里面有教阅签,yaf框架里面是沒有模型層掐暮,模型自己實(shí)現(xiàn) pdo功能已經(jīng)足夠強(qiáng)大)..............

http://medoo.lvtao.net

了解:面向過程、OOP編程政钟、AOP編程【面向切面編程】路克、面向組件編程....

二樟结、laravel框架

1、laravel簡介

laravel是目前一個(gè)比較主流的框架精算,現(xiàn)在很多互聯(lián)網(wǎng)的公司基本都在使用該框架瓢宦。該框架是基于symfony【國外一款非常流行的框架:由于國內(nèi)手冊不是很齊全,沒有多少公司使用】的一個(gè)國外的MVC框架灰羽。

image.png

官網(wǎng):https://laravel.com/

國內(nèi)訪問地址:http://www.golaravel.com/

中文社區(qū)網(wǎng)站:https://laravel-china.org/

2驮履、開發(fā)環(huán)境要求

laravel框架有運(yùn)行對環(huán)境是有嚴(yán)格要求的。(在Windows下建議使用集成開發(fā)環(huán)境phpstudy這個(gè)產(chǎn)品廉嚼,目前還支持php7玫镐,并且可以非常方便的做版本切換。)

image.png

注意:如果要使用PHPstudy怠噪,則必須先關(guān)閉之前的wamp環(huán)境(例如Apache恐似、MySQL服務(wù))

注意:安裝的過程中出現(xiàn)vc庫找不到,使用下面的方式進(jìn)行處理

錯(cuò)誤解決

3傍念、laravel安裝方式簡介

使用專業(yè)的軟件 composer 軟件矫夷,可以幫我們自動(dòng)去互聯(lián)網(wǎng)下載開發(fā)過程中所需要的類庫文件和Linux下包管理器yum比較類似,和node.js里面npm 憋槐,也和前端里面bower相似双藕。

簡介:http://docs.phpcomposer.com/00-intro.html

國外鏡像:https://packagist.org/

國內(nèi)鏡像:https://pkg.phpcomposer.com/

很多其他的語言都有對應(yīng)的包管理器,但是唯獨(dú)PHP里面開啟是沒有的阳仔,這個(gè)時(shí)候就有人提出一種思想忧陪,把所有的PHP常見的類庫(上傳、圖片處理近范、分頁類)統(tǒng)一放在一個(gè)PHP應(yīng)用商店赤嚼。然后使用一定的工具進(jìn)行管理,例如下載顺又、更新..... 而這這樣的管理工具就是要學(xué)習(xí)的composer管理工具更卒。

使用手工安裝,需要自己去下載laravel的框架的源碼稚照。

http://laravelacademy.org/resources-download

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

安裝后的界面:

image.png

5果录、啟動(dòng)laravel項(xiàng)目

laravel官方提供一個(gè)叫做artisan的腳本上枕,可以幫我們快速的完成一些事情,例如啟動(dòng)項(xiàng)目弱恒,生成控制器文件辨萍,模型文件..........

可以執(zhí)行如下命名的時(shí)候,必須是在laravel項(xiàng)目的根目錄

php artisan serve

image.png

瀏覽器效果:

image.png

6、手工安裝laravel

http://laravelacademy.org/resources-download

將下載的文件復(fù)制到虛擬主機(jī)目錄

image.png

在Apache的配置文件配置一個(gè)虛擬主機(jī)【注意锈玉,需要指向 public目錄下】

DocumentRoot "C:\phpStudy\WWW\laravel.dev\public"? ? ServerName laravel51.dev? ? ServerAlias phpStudy.netOptions FollowSymLinks ExecCGI? ? ? AllowOverride All? ? ? Order allow,deny? ? ? Allow from all? ? ? Require all granted

配置hosts文件

127.0.0.1laravel51.dev

瀏覽器訪問效果

瀏覽器訪問

7爪飘、laravel目錄結(jié)構(gòu)分析

整體目錄

整體目錄結(jié)構(gòu)

app目錄

image.png

http目錄

image.png

config目錄

config目錄:主要是存放配置文件信息,laravel的配置信息是分文件保存的拉背。

image.png

database目錄

database目錄:數(shù)據(jù)遷移和種子文件师崎。

image.png

例如某個(gè)數(shù)據(jù)遷移文件:在項(xiàng)目開發(fā)和測試階段使用的較多,上線之后基本不用椅棺。

image.png

public目錄

public目錄:單入口和系統(tǒng)的靜態(tài)資源(css犁罩、img、js两疚、uploads)

image.png

resource目錄

resources目錄:存放視圖文件床估。

image.png

storage目錄

storage目錄:主要是存放緩存文件和日志文件,需要注意:如果是在Linux環(huán)境下诱渤,該目錄需要有可寫的權(quán)限

image.png

vendor目錄

vendor目錄:主要是存放第三方的類庫文件顷窒,laravel思想主要是共同的開發(fā),不要重復(fù)的造輪子(例如:里面可能存在驗(yàn)證碼類源哩、上傳類、郵件類)鸦做,還需要注意該目錄還存放laravel框架的源碼励烦。注意:如果使用的composer軟件管理的,composer下載的類庫都是存放在該目錄下的泼诱。

image.png

.env文件

.env文件:主要是設(shè)置一些系統(tǒng)相關(guān)的環(huán)境配置文件信息坛掠。config目錄里面的文件配置內(nèi)容一般都是讀取該文件里面的配置信息(config里面的配置項(xiàng)的值基本都是來自.env文件)。

image.png

三治筒、laravel入門使用

1屉栓、路由簡介

因?yàn)閘aravel是一個(gè)重路由的框架。

什么是路由耸袜?

答:路由就是用戶在地址欄里面輸入一個(gè)url地址后友多,交給后端的那個(gè)控制器下的那個(gè)方法進(jìn)行處理的規(guī)則。一般我們需要在專門的路由文件里面堤框,進(jìn)行定義好域滥。

為什么要使用路由?

答: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)絡(luò)攻擊.....

路由文件在哪里沟使,以及規(guī)則如何編寫委可?

image.png

2、路由入門使用

// laravel內(nèi)置了一個(gè)Route類腊嗡,提供了很多方法 一般是根據(jù)http的請求來命名 // 例如: 1. get 2. post 3. any 4. match .....// get方法是處理 get請求 第一個(gè)參數(shù):代表是請求的url地址的uri部分 // 第二個(gè)參數(shù):1. 匿名函數(shù) 2. 字符串(控制器下的某個(gè)方法)// 1. 匿名函數(shù) 返回值作為http的響應(yīng)返回給瀏覽器// 2. 控制器里面的方法執(zhí)行作為響應(yīng)// url:http://local.laravel51.com/Route::get('/',function(){return'hello';// return view('welcome');});// url:http://local.laravel51.com/aboutRoute::get('/about',function(){return'about';// return view('welcome');});

3着倾、視圖使用

視圖載入

學(xué)習(xí):

視圖寫在哪里拾酝?

視圖文件如何命名?

視圖里面的內(nèi)容和編寫屈呕?

視圖是否可以分目錄管理微宝?

視圖如何被載入?

如何視圖賦值虎眨?

image.png

效果:

image.png

4蟋软、blade模板引擎

截圖

在routes.php里面定義一個(gè)/user/login路由

image.png

建立 login.blade.php視圖文件

image.png

在routes.php里面定義一個(gè)/blade路由

image.png

建立 show.blade.php視圖文件

image.png

注意:laravel模板引擎和 vuejs的沖突解決

image.png

代碼

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)置了一個(gè)Route類,提供了很多方法 一般是根據(jù)http的請求來命名 例如: 1. get 2. post 3. any 4. match .....// get方法是處理 get請求 第一個(gè)參數(shù):代表是請求的url地址的uri部分 第二個(gè)參數(shù): 1. 匿名函數(shù) 2. 字符串(控制器下的某個(gè)方法)// url:http://local.laravel51.com/// 1. 匿名函數(shù) 返回值作為http的響應(yīng)返回給瀏覽器// 2. 控制器里面的方法執(zhí)行Route::get('/',function(){return'hello';// return view('welcome');});// url:http://local.laravel51.com/aboutRoute::get('/about',function(){return'about';// return view('welcome');});// 1. 視圖寫哪里嗽桩? 2. 視圖文件名如何命名? 3. 視圖里面內(nèi)容 4. 視圖是否可以分目錄管理 5. 視圖如何被載入 6. 如何視圖賦值// url:http://local.laravel51.com/user/loginRoute::get('/user/login',function(){// view() 函數(shù)是用于載入視圖的 視圖寫在哪里岳守? 如何命名?// /resources/views/視圖文件名稱.blade.php? 文件的后綴 .blade.php必須這樣碌冶,因?yàn)閘aravel內(nèi)部使用的一個(gè)模板: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 第一個(gè)參數(shù)是視圖調(diào)用名稱 第二個(gè)參數(shù)變量信息// 第二種: 直接給view函數(shù)傳遞第二個(gè)參數(shù)湿痢,關(guān)聯(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;// 復(fù)合數(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)換為 關(guān)鍵數(shù)組 參數(shù):是變量名returnview('home.user.login', compact('info','title','key','age','userData'));});// 視圖里面的模板引擎 blade 1. 基本數(shù)據(jù)輸出 2. 復(fù)合數(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 ='這個(gè)是真的!';returnview('show', compact('title','userData','info','isBoolean'));});

show.blade.php視圖文件

? ? ? ? ? ? ? ? ? ? ? ? ? blade模板引擎? ? ? ? ? ?

原生PHP

? ? ? ?
? ? ? ?


? ? ? ?
{{-- 短標(biāo)記語法PHP --}}? ? ? ?


? ? ? ?
? ? ? ?

blade模板引擎

? ? ? ? {{-- 這兩個(gè)大括號被叫做 插值表達(dá)式罐氨,計(jì)算內(nèi)部的表達(dá)式臀规,最終的結(jié)果放置在這里 --}}? ? ? ? {{-- vuejs 也是使用的插值表達(dá)式 --}}? ? ? ?

{{ $title }}

? ? ? ?

{{1+1}}

? ? ? ?

{{3*8}}

? ? ? ?

邏輯運(yùn)算

? ? ? ?

{{ !false}}

? ? ? ? {{-- 三目運(yùn)算 --}}? ? ? ?

{{1>2?'假的':'真的'}}

? ? ? ?
? ? ? ?

復(fù)合數(shù)據(jù)類型輸出

? ? ? ? @foreach($userDataas$v)? ? ? ? ? ?
  • 序號: {{? $v['id'] }} 姓名: {{ $v['username'] }}
  • ? ? ? ? ? ?
    ? ? ? ? @endforeach
    ? ? ? ? @if( $isBoolean )? ? ? ? ? ? {{? $info }}? ? ? ? @endif
    ? ? ? ? @if( $isBoolean )? ? ? ? ? ? 這個(gè)是真的...........? ? ? ? @else假的的...........? ? ? ? @endif? ? {{-- 問題: laravel和 vue 相遇了? --}}? ? ? ? ? ? {{-- 不想讓 laravel進(jìn)行解析,前端vuejs 在瀏覽器里面解析 --}}? ? ? ? ? ? {{-- vuejs 前端MVVM框架 --}}? ? ? ? ? ?

    @{{? msg }}

    ? ? ? ? ? ? newVue({? ? ? ? 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.'}? ? });

    login.blade.php視圖文件

    ? ? ? ? ? ? ? ? ? ? ? user-login頁面? ? ? ? ? ? user-login頁面? ? ? ?


    ? ? ? ?

    原生PHP

    ? ? ? ? ? ? ? ?
    ? ? ? ?

    blade模板引擎

    ? ? ? ?

    {{ time() }}

    ? ? ? ?
    ? ? ? ?


    ? ? ? ?
    ? ? ? ? ? ? ? ?
    ? ? ? ? ? ? ? ?
    ? ? ? ?


    ? ? ? ?
    ? ? ? ?

    復(fù)合數(shù)據(jù)類型: 數(shù)據(jù)遍歷操作

    ? ? ? ?
      ? ? ? ? ? ? ? ? ? ? ? ? ? ?
    • 序號: 姓名:
    • ? ? ? ? ? ? ? ?
      ? ? ? ? ? ? ? ? ? ?
    ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? 用戶名:? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? 密碼:? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?

    4栅隐、控制器使用

    通過上面的操作塔嬉,我們發(fā)現(xiàn)基本將代碼都寫在routes.php路由文件,這樣不利于后期的開發(fā)和維護(hù)租悄。一般會(huì)將用戶的請求交給控制器下的某個(gè)方法來處理谨究。在方法里面完成業(yè)務(wù)邏輯。

    思考:

    控制器寫在哪里泣棋?

    控制器文件名如何命名胶哲?

    控制器里面的內(nèi)容如何編寫?

    控制器里面如何載入視圖潭辈?

    控制器里面如何賦值纪吮?

    控制器里面的方法如何被調(diào)用?

    如何在控制器里面實(shí)例化模型萎胰?

    如何通過模型獲取數(shù)據(jù)碾盟?

    5、artisan命令-控制器

    使用 artisan 命令生成控制器的默認(rèn)行為

    image.png

    效果:

    image.png

    代碼內(nèi)容:

    image.png

    使用 artisan 命令生成控制器的不要帶方法

    image.png

    代碼內(nèi)容:

    image.png

    使用 artisan 命令生成控制器的分目錄管理

    image.png

    代碼內(nèi)容:

    image.png

    常見錯(cuò)誤

    加密密鑰生成

    image.png

    解決:

    image.png

    404錯(cuò)誤

    如果沒有在路由文件里面定義路由規(guī)則技竟,直接請求冰肴,會(huì)提示如下的信息:

    ?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
    • 序言:七十年代末,一起剝皮案震驚了整個(gè)濱河市,隨后出現(xiàn)的幾起案子熙尉,更是在濱河造成了極大的恐慌联逻,老刑警劉巖,帶你破解...
      沈念sama閱讀 206,311評論 6 481
    • 序言:濱河連續(xù)發(fā)生了三起死亡事件检痰,死亡現(xiàn)場離奇詭異包归,居然都是意外死亡,警方通過查閱死者的電腦和手機(jī)铅歼,發(fā)現(xiàn)死者居然都...
      沈念sama閱讀 88,339評論 2 382
    • 文/潘曉璐 我一進(jìn)店門公壤,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人椎椰,你說我怎么就攤上這事厦幅。” “怎么了慨飘?”我有些...
      開封第一講書人閱讀 152,671評論 0 342
    • 文/不壞的土叔 我叫張陵确憨,是天一觀的道長。 經(jīng)常有香客問我瓤的,道長休弃,這世上最難降的妖魔是什么? 我笑而不...
      開封第一講書人閱讀 55,252評論 1 279
    • 正文 為了忘掉前任圈膏,我火速辦了婚禮塔猾,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘本辐。我一直安慰自己,他們只是感情好医增,可當(dāng)我...
      茶點(diǎn)故事閱讀 64,253評論 5 371
    • 文/花漫 我一把揭開白布慎皱。 她就那樣靜靜地躺著,像睡著了一般叶骨。 火紅的嫁衣襯著肌膚如雪茫多。 梳的紋絲不亂的頭發(fā)上,一...
      開封第一講書人閱讀 49,031評論 1 285
    • 那天忽刽,我揣著相機(jī)與錄音天揖,去河邊找鬼。 笑死跪帝,一個(gè)胖子當(dāng)著我的面吹牛今膊,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播伞剑,決...
      沈念sama閱讀 38,340評論 3 399
    • 文/蒼蘭香墨 我猛地睜開眼斑唬,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起恕刘,我...
      開封第一講書人閱讀 36,973評論 0 259
    • 序言:老撾萬榮一對情侶失蹤缤谎,失蹤者是張志新(化名)和其女友劉穎,沒想到半個(gè)月后褐着,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體坷澡,經(jīng)...
      沈念sama閱讀 43,466評論 1 300
    • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
      茶點(diǎn)故事閱讀 35,937評論 2 323
    • 正文 我和宋清朗相戀三年含蓉,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了频敛。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
      茶點(diǎn)故事閱讀 38,039評論 1 333
    • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡谴餐,死狀恐怖姻政,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情岂嗓,我是刑警寧澤汁展,帶...
      沈念sama閱讀 33,701評論 4 323
    • 正文 年R本政府宣布,位于F島的核電站厌殉,受9級特大地震影響食绿,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜公罕,卻給世界環(huán)境...
      茶點(diǎn)故事閱讀 39,254評論 3 307
    • 文/蒙蒙 一器紧、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧楼眷,春花似錦铲汪、人聲如沸。這莊子的主人今日做“春日...
      開封第一講書人閱讀 30,259評論 0 19
    • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至张吉,卻和暖如春齿梁,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背肮蛹。 一陣腳步聲響...
      開封第一講書人閱讀 31,485評論 1 262
    • 我被黑心中介騙來泰國打工勺择, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留,地道東北人伦忠。 一個(gè)月前我還...
      沈念sama閱讀 45,497評論 2 354
    • 正文 我出身青樓省核,卻偏偏與公主長得像,于是被迫代替她去往敵國和親昆码。 傳聞我的和親對象是個(gè)殘疾皇子芳撒,可洞房花燭夜當(dāng)晚...
      茶點(diǎn)故事閱讀 42,786評論 2 345

    推薦閱讀更多精彩內(nèi)容

    • # 一邓深、框架概述 # 課程概述 1. laravel 4天(之前TP框架還是很大的區(qū)別)(國外框架) 2. 在線教...
      關(guān)進(jìn)一閱讀 362評論 0 0
    • 原文鏈接 必備品 文檔:Documentation API:API Reference 視頻:Laracasts ...
      layjoy閱讀 8,603評論 0 121
    • Android 自定義View的各種姿勢1 Activity的顯示之ViewRootImpl詳解 Activity...
      passiontim閱讀 171,504評論 25 707
    • 必備品文檔:DocumentationAPI: API Reference視頻:Laracasts速查表:Lara...
      ethanzhang閱讀 5,739評論 0 68
    • 東伯雪鷹遙看著那位白骨甲鎧青年逃離到遠(yuǎn)處,待得星光壓制較弱時(shí)笔刹,才強(qiáng)行撕裂空間穿梭離去芥备。 “能在三十六神將中排第二,...
      im喵小姐閱讀 318評論 0 0