2018-01-21

一、框架概述

課程概述

  1. laravel 4天(之前TP框架還是很大的區(qū)別)(國外框架)
  2. 在線教育平臺 6天(laravel熟悉+插件+開發(fā)模式)

  1. dedecms 二次開發(fā)
  2. CI框架

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)度)左右踱卵。

問題:

  1. 在MVC設計思想里面,哪一個是最重要的据过?
    答:M最重要惋砂,數(shù)據(jù)的處理。(MVC 首當其沖是M)

  2. 在MVC設計思想里面绳锅,和用戶直接產(chǎn)生關(guān)聯(lián)的是哪一個西饵?
    答:C 控制器,地址欄 url地址----》模塊下控制器下方法
    http://local.mvc.com/index.php/Home/View/login 方法(邏輯判斷 1. 載入視圖 get 2. 實例化模型post)

  3. 在MVC里面如果沒有V視圖層的參數(shù)鳞芙,是否可以正常顯示數(shù)據(jù)眷柔?
    答:MCT開發(fā)思想。(T template模板)可以

  4. html 可以直接 echo "html標簽"; $html = <<<HTML
    html代碼
    HTML;

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

現(xiàn)在更多的是個人開發(fā)為主驯嘱,但是實際工作開發(fā)肯定是團隊合作為主。必然溝通的問題喳坠,協(xié)調(diào)的問題鞠评。主要是為了團隊的協(xié)作。統(tǒng)一的規(guī)范進行開發(fā)丙笋,后期容易整合谢澈。最后的維護是容易。

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

  1. 代碼重用锥忿,很多通用的代碼可以復用,例如做參數(shù)過濾怠肋,可以封裝成一個函數(shù) I('get.id', 0, 'intval')

  2. 開發(fā)者只需要關(guān)注業(yè)務代碼敬鬓,不需要關(guān)注框架底層代碼實現(xiàn),例如數(shù)據(jù)庫的操作
    原生:insert into sh_goods values(xx..x...) mysql mysqli pdo....
    框架:D("Goods")->add(I('post.'))

  3. 代碼量變少了,開發(fā)速度快钉答,開發(fā)周期短(40-60%)

  4. 開發(fā)規(guī)范比較統(tǒng)一础芍,例如函數(shù)和類的命名,方便團隊協(xié)作
    原生:user.php aaaa.php bbbbb.php afsdaf.php
    框架:UserController.class.php

  5. 后期的維護更加方便数尿,同時功能模塊的擴展也變得容易

弊端:使用框架劣勢仑性?
答:凡事都有兩面性。

  • 限制人的思維(必須按照框架的規(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ā)铝穷,所以需要考慮的方面很全面,導致框架整體很臃腫球及。

image.png

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

中文叫做易框架氧骤,重量級框架,美籍華人薛強進行開發(fā)的框架吃引。最大的特點就是組件化筹陵、代碼復用。(不太適合新手進行使用镊尺,里面的設計模式朦佩、OOP概念理解很深、外貿(mào)電商使用的比較多)不建議:HTML代碼庐氮,建議HTML代碼全部使用PHP的類庫進行輸出语稠。$form = new FormActive(); $form->open('post', 'url'....)很前端jQuery很緊密。

image.png

最先在YII里面提出代碼的復用性的體現(xiàn)弄砍,為了減少重復性代碼的開發(fā)仙畦。研發(fā)了一個叫做GII的模塊,也叫作代碼生成器音婶、也叫作腳手架慨畸,主要是做輔助性的開發(fā)衣式,用戶只需要輸入一下表名寸士,即可生成對應curd相關(guān)的代碼文件檐什。這個東西太好用了,所以很多框架爭相模仿弱卡,我們今天學習laravel也提供了類似的工具乃正,叫做 artisan命令工具,有了它可以非成舨快速的生成一些基礎性的代碼瓮具,例如控制器的生成、模型的生成等等......

php artisan make:controller UserController
php artisan make:model User

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

商品模塊凡蜻、會員模塊.....

  1. 控制器(curd操作)
  2. 模型(自動驗證搭综、自動完成....)
  3. 三個靜態(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 模板引擎讥邻。

image.png

Laravel(重點)

目前是一個非常火的非吃合浚火的重路由的框架兴使。需要注意該框架是基于Symfony框架的(Symfony 底層使用composer這個類庫管理軟件)。在學習laravel之前還要學習一下composer這個軟件照激。

image.png

Codelgniter (小型)

CI框架发魄,輕量級框架,國外框架(個人開發(fā)的產(chǎn)品俩垃,全國使用量励幼,很多人喜歡將該框架作為基礎性的框架,然后在該框架上加入自己的代碼進行封裝)口柳,市場上有一定的應用苹粟。顯著的特點:按需加載。

image.png

ThinkPHP

ThinkPHP是一個叫做劉晨的中國人開發(fā)的國產(chǎn)框架啄清。有中文官網(wǎng)六水、中文幫助文檔俺孙、中文社區(qū),以及豐富的百度搜索資源掷贾。所以ThinkPHP很適合作為入門級的開發(fā)框架(學習成本是最低)睛榄。

image.png

下面的介紹的框架都是C語言編寫的框架,是說這個框架本身是用C語言進行編寫想帅,但是編寫完成之后场靴,將它進行編譯成一個 dll(Windows動態(tài)鏈接庫文件)(php_yaf.dll),然后在php.ini文件進行引入港准。

yaf框架

Yaf旨剥,全稱 Yet Another Framework,是由鳥哥(惠新宸)使用C語言進行開發(fā)的一個高性能的可以作為PHP擴展出現(xiàn)的框架浅缸。(Yaf_Abstarct)

image.png

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

phalcon框架(國外)

Phalcon 是開源、全功能棧衩椒、使用 C 擴展編寫蚌父、針對高性能優(yōu)化的 PHP 5 框架。 開發(fā)者不需要學習和使用 C 語言的功能毛萌, 因為所有的功能都以 PHP 類的方式暴露出來苟弛,可以直接使用。 Phalcon 也是松耦合的阁将,可以根據(jù)項目的需要任意使用其他對象膏秫。Phalcon是一套實現(xiàn)MVC架構(gòu)的高性能PHP應用程序框架。(文檔很少)性能是僅此于yaf做盅。

image.png

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

思考:
laravel為什么會在國內(nèi)流行?

  1. 出現(xiàn)的時機是最合適的言蛇。
  2. 代碼相對來說寫起來簡潔僻他,用很少的代碼可以完全多一些。
  3. laravel設計思想就很超前腊尚,其他的框架沒有及時去運用PHP最新的特性呼畸。并且laravel借鑒了很多其他的編程語言的特性企蹭,例如Java献联、ruby巴粪。
  4. 擴展性很好(設計模式)。
  5. 和composer有很好的配合民宿,互利共贏娇妓。(百度:composer里面提供的類庫大部分是支持laravel)
  6. 最后laravel對前端款框架支持也非常友好 laravel + vuejs
  7. .....

4、ORM機制

什么是ORM機制活鹰?
object relationship model 對象關(guān)系模型哈恰。由于現(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ù)庫吁脱?可以、映射關(guān)系

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

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

屬性($userModel->username) 表中字段(username彬向、password)

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

5兼贡、ORM的實現(xiàn)

既然ORM是一種思想,是一種解決問題的方式娃胆。屬于一種抽象的行為遍希。那么應該想辦法去實現(xiàn)該思想。實現(xiàn)的方式有很多種:

  1. AR模式(Active Record TP里面使用該方式實現(xiàn))
    $userModel = D('User'); // 模型類 sh_user;
    $userModel->username = 'andy';
    $userModel->password = md5('admin88');
    $userModel->add();

  2. eloquentORM機制(laravel里面的實現(xiàn))

  3. medoo機制(yaf框架里面有教里烦,yaf框架里面是沒有模型層孵班,模型自己實現(xiàn) pdo功能已經(jīng)足夠強大)..............
    http://medoo.lvtao.net

了解:面向過程、OOP編程招驴、AOP編程【面向切面編程】、面向組件編程....

二枷畏、laravel框架

1别厘、laravel簡介

laravel是目前一個比較主流的框架,現(xiàn)在很多互聯(lián)網(wǎng)的公司基本都在使用該框架拥诡。該框架是基于symfony【國外一款非常流行的框架:由于國內(nèi)手冊不是很齊全触趴,沒有多少公司使用】的一個國外的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框架有運行對環(huán)境是有嚴格要求的冗懦。(在Windows下建議使用集成開發(fā)環(huán)境phpstudy這個產(chǎn)品,目前還支持php7仇祭,并且可以非常方便的做版本切換披蕉。)

image.png

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

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


錯誤解決

3、laravel安裝方式簡介

  1. 使用專業(yè)的軟件 composer 軟件礁苗,可以幫我們自動去互聯(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/

很多其他的語言都有對應的包管理器嘁信,但是唯獨PHP里面開啟是沒有的于样,這個時候就有人提出一種思想,把所有的PHP常見的類庫(上傳潘靖、圖片處理穿剖、分頁類)統(tǒng)一放在一個PHP應用商店。然后使用一定的工具進行管理秘豹,例如下載携御、更新..... 而這這樣的管理工具就是要學習的composer管理工具。

  1. 使用手工安裝既绕,需要自己去下載laravel的框架的源碼啄刹。
    http://laravelacademy.org/resources-download

4、composer安裝laravel

  1. 在安裝之前凄贩,先配置一下composer使用國內(nèi)的鏡像源(只要使用一次即可)

composer config -g repo.packagist composer https://packagist.phpcomposer.com

  1. 命令行執(zhí)行如下的命令

composer create-project laravel/laravel=5.1.* local.laravel51.com --prefer-dist

安裝后的界面:


image.png

5誓军、啟動laravel項目

laravel官方提供一個叫做artisan的腳本,可以幫我們快速的完成一些事情疲扎,例如啟動項目昵时,生成控制器文件,模型文件..........

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

php artisan serve

image.png

瀏覽器效果:

image.png

6壹甥、手工安裝laravel

http://laravelacademy.org/resources-download

  1. 將下載的文件復制到虛擬主機目錄
image.png
  1. 在Apache的配置文件配置一個虛擬主機【注意,需要指向 public目錄下】
<VirtualHost *:80>
    DocumentRoot "C:\phpStudy\WWW\laravel.dev\public"
    ServerName laravel51.dev
    ServerAlias phpStudy.net
  <Directory "C:\phpStudy\WWW\laravel.dev\public">
      Options FollowSymLinks ExecCGI
      AllowOverride All
      Order allow,deny
      Allow from all
      Require all granted
  </Directory>
</VirtualHost>

  1. 配置hosts文件
127.0.0.1 laravel51.dev

  1. 瀏覽器訪問效果
瀏覽器訪問

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

例如某個數(shù)據(jù)遷移文件:在項目開發(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ā)鹰贵,不要重復的造輪子(例如:里面可能存在驗證碼類、上傳類康嘉、郵件類)碉输,還需要注意該目錄還存放laravel框架的源碼。注意:如果使用的composer軟件管理的亭珍,composer下載的類庫都是存放在該目錄下的敷钾。

image.png

.env文件

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

image.png

三阻荒、laravel入門使用

1挠锥、路由簡介

因為laravel是一個重路由的框架。

什么是路由侨赡?

答:路由就是用戶在地址欄里面輸入一個url地址后蓖租,交給后端的那個控制器下的那個方法進行處理的規(guī)則。一般我們需要在專門的路由文件里面羊壹,進行定義好蓖宦。

為什么要使用路由?

答:laravel里面路由油猫。最新的 TP5里面也是存在路由稠茂。
好處:

  1. url地址變得非常的美觀。(以前沒有路由都是通過偽靜態(tài)處理)
  2. 隱藏網(wǎng)站的目錄結(jié)構(gòu)(t.cn/goods/index.php ?)(index.php?m=Home&c=User&a=lst)
  3. 防范網(wǎng)絡攻擊.....

路由文件在哪里情妖,以及規(guī)則如何編寫睬关?

image.png

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');
});

3电爹、視圖使用

視圖載入

學習:

  1. 視圖寫在哪里?
  2. 視圖文件如何命名料睛?
  3. 視圖里面的內(nèi)容和編寫藐不?
  4. 視圖是否可以分目錄管理?
  5. 視圖如何被載入秦效?
  6. 如何視圖賦值?
image.png

效果:

image.png

4涎嚼、blade模板引擎

截圖

  1. 在routes.php里面定義一個/user/login路由
image.png
  1. 建立 login.blade.php視圖文件
image.png
  1. 在routes.php里面定義一個/blade路由
image.png
  1. 建立 show.blade.php視圖文件
image.png
  1. 注意:laravel模板引擎和 vuejs的沖突解決
image.png

代碼

routes.php路由文件


<?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ù)立哑,關(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;
  // 復合數(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ù):是變量名
    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'));

});

show.blade.php視圖文件

<!DOCTYPE html>
<html lang="en">
<head>
  <meta charset="UTF-8">
  <link  rel="stylesheet">
  <script src="https://cdn.bootcss.com/jquery/2.0.1/jquery.js"></script>  
  <script src="https://cdn.bootcss.com/bootstrap/3.3.7/js/bootstrap.js"></script>
  
  <title>blade模板引擎</title>
</head>
<body>
  <div class="container">
    <h2>原生PHP</h2>
    <hr>
    <p><?php echo $title;?></p>
    <hr>
    {{-- 短標記語法PHP --}}
    <p><?= $title;?></p>
    <hr>
    <h2>blade模板引擎</h2>
    {{-- 這兩個大括號被叫做 插值表達式,計算內(nèi)部的表達式捂掰,最終的結(jié)果放置在這里 --}}
    {{-- vuejs 也是使用的插值表達式 --}}
    <p>{{ $title }}</p>
    <p>{{  1 + 1 }}</p>
    <p>{{  3 * 8 }}</p>
    <h2>邏輯運算</h2>
    <p>{{ !false }}</p>
    {{-- 三目運算 --}}
    <p>{{ 1 > 2 ? '假的' : '真的' }}</p>
    <hr>
    <h1>復合數(shù)據(jù)類型輸出</h1>
    @foreach ($userData as $v)
      <li>序號: {{  $v['id'] }} 姓名: {{ $v['username'] }}</li>
      <hr>
    @endforeach
    <hr>
    @if ( $isBoolean )
      {{  $info }}
    @endif
    <hr>
    @if ( $isBoolean )
      這個是真的...........
    @else
      假的的...........
    @endif
  </div>
  {{-- 問題: laravel和 vue 相遇了  --}}
  <div class="container">
    <div id="box">
      {{-- 不想讓 laravel進行解析敢会,前端vuejs 在瀏覽器里面解析 --}}
      {{-- vuejs 前端MVVM框架 --}}
      <p>@{{  msg }}</p>
    </div>
  </div>
</body>
<script src="https://cdn.bootcss.com/vue/1.0.23/vue.js"></script>
<script type="text/javascript">
  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.'
    }

  });
</script>
</html>

login.blade.php視圖文件

<!DOCTYPE html>
<html lang="en">
<head>
  <meta charset="UTF-8">
  <link  rel="stylesheet">
  <script src="https://cdn.bootcss.com/jquery/2.0.1/jquery.js"></script>  
  <script src="https://cdn.bootcss.com/bootstrap/3.3.7/js/bootstrap.js"></script>
  <title>user-login頁面</title>
</head>
<body>
  <div class="container">
    <h1 class="page-header">user-login頁面</h1>
    <hr>
    <h2>原生PHP</h2>
    <?php echo date('Y-m-d H:i:s');?>
    <hr>
    <h2>blade模板引擎</h2>
    <p>{{ time() }}</p>
    <hr>
    <p><?php echo $info;?></p>
    <hr>
    <p class="well"><?php echo $title;?></p>
    <hr>
    <p class="well"><?php echo $key;?></p>
    <hr>
    <p><?php echo $age;?></p>
    <hr>
    <h2>復合數(shù)據(jù)類型: 數(shù)據(jù)遍歷操作</h2>
    <ul>
      <?php foreach ($userData as $v): ?>
        <li>序號: <?php echo $v['id'];?> 姓名: <?php echo $v['username'];?></li>
        <hr>
      <?php endforeach ?>
    </ul>
  </div>
  
  
  <div class="container">
    <form action="" method="POST">
      <div class="form-group">
        <label for="username">用戶名:</label>
        <input type="text" name="username" id="username" class="form-control" value="">
      </div>
      <div class="form-group">
        <label for="password">密碼:</label>
        <input type="password" name="password" id="password" class="form-control" value="">
      </div>
      <div class="form-group">
        <input type="submit" value="提交" class="btn btn-success">
        <input type="reset" value="清空" class="btn btn-danger">
      </div>
    </form>
  </div>
</body>
</html>

4曾沈、控制器使用

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

思考:

  1. 控制器寫在哪里障涯?
  2. 控制器文件名如何命名?
  3. 控制器里面的內(nèi)容如何編寫膳汪?
  4. 控制器里面如何載入視圖唯蝶?
  5. 控制器里面如何賦值?
  6. 控制器里面的方法如何被調(diào)用旅敷?
  7. 如何在控制器里面實例化模型生棍?
  8. 如何通過模型獲取數(shù)據(jù)?

5媳谁、artisan命令-控制器

使用 artisan 命令生成控制器的默認行為

image.png

效果:

image.png

代碼內(nèi)容:

image.png

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

image.png

代碼內(nèi)容:

image.png

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

image.png

代碼內(nèi)容:

image.png

常見錯誤

加密密鑰生成

image.png

解決:

image.png

404錯誤

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

image.png
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末晴音,一起剝皮案震驚了整個濱河市柔纵,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌锤躁,老刑警劉巖搁料,帶你破解...
    沈念sama閱讀 218,204評論 6 506
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異系羞,居然都是意外死亡郭计,警方通過查閱死者的電腦和手機,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,091評論 3 395
  • 文/潘曉璐 我一進店門椒振,熙熙樓的掌柜王于貴愁眉苦臉地迎上來昭伸,“玉大人,你說我怎么就攤上這事澎迎÷睿” “怎么了?”我有些...
    開封第一講書人閱讀 164,548評論 0 354
  • 文/不壞的土叔 我叫張陵夹供,是天一觀的道長灵份。 經(jīng)常有香客問我,道長哮洽,這世上最難降的妖魔是什么填渠? 我笑而不...
    開封第一講書人閱讀 58,657評論 1 293
  • 正文 為了忘掉前任,我火速辦了婚禮,結(jié)果婚禮上揭蜒,老公的妹妹穿的比我還像新娘横浑。我一直安慰自己,他們只是感情好屉更,可當我...
    茶點故事閱讀 67,689評論 6 392
  • 文/花漫 我一把揭開白布徙融。 她就那樣靜靜地躺著,像睡著了一般瑰谜。 火紅的嫁衣襯著肌膚如雪欺冀。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 51,554評論 1 305
  • 那天萨脑,我揣著相機與錄音隐轩,去河邊找鬼。 笑死渤早,一個胖子當著我的面吹牛职车,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播鹊杖,決...
    沈念sama閱讀 40,302評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼悴灵,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了骂蓖?” 一聲冷哼從身側(cè)響起积瞒,我...
    開封第一講書人閱讀 39,216評論 0 276
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎登下,沒想到半個月后茫孔,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 45,661評論 1 314
  • 正文 獨居荒郊野嶺守林人離奇死亡被芳,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 37,851評論 3 336
  • 正文 我和宋清朗相戀三年缰贝,在試婚紗的時候發(fā)現(xiàn)自己被綠了。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片畔濒。...
    茶點故事閱讀 39,977評論 1 348
  • 序言:一個原本活蹦亂跳的男人離奇死亡揩瞪,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出篓冲,到底是詐尸還是另有隱情,我是刑警寧澤宠哄,帶...
    沈念sama閱讀 35,697評論 5 347
  • 正文 年R本政府宣布壹将,位于F島的核電站,受9級特大地震影響毛嫉,放射性物質(zhì)發(fā)生泄漏诽俯。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點故事閱讀 41,306評論 3 330
  • 文/蒙蒙 一暴区、第九天 我趴在偏房一處隱蔽的房頂上張望闯团。 院中可真熱鬧,春花似錦仙粱、人聲如沸房交。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,898評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽候味。三九已至,卻和暖如春隔心,著一層夾襖步出監(jiān)牢的瞬間白群,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 33,019評論 1 270
  • 我被黑心中介騙來泰國打工硬霍, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留帜慢,地道東北人。 一個月前我還...
    沈念sama閱讀 48,138評論 3 370
  • 正文 我出身青樓唯卖,卻偏偏與公主長得像粱玲,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子耐床,可洞房花燭夜當晚...
    茶點故事閱讀 44,927評論 2 355

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

  • 1. 一密幔、框架概述 2. 課程概述 laravel 4天(之前TP框架還是很大的區(qū)別)(國外框架) 在線教育平臺 ...
    jim1999閱讀 327評論 0 0
  • 一、框架概述 課程概述 laravel 4天(之前TP框架還是很大的區(qū)別)(國外框架) 在線教育平臺 6天(lar...
    我愛開發(fā)閱讀 303評論 0 0
  • 一撩轰、框架概述 課程概述 laravel 4天(之前TP框架還是很大的區(qū)別)(國外框架) 在線教育平臺 6天(lar...
    園草戒閱讀 938評論 0 2
  • 一胯甩、框架概述 1、什么是框架堪嫂? 框架是許多代碼的集合偎箫,為項目開發(fā)提供了很多基礎性的代碼。例如常見的參數(shù)過濾皆串,DB類...
    神經(jīng)波閱讀 5,119評論 0 3
  • 最近養(yǎng)了一只巴西龜淹办,一種普通至極的小龜。最初的兩天恶复,我買了一個小臉盆和一袋龜飼料怜森,清洗臉盆、裝水谤牡、放置幾塊大石子副硅,...
    古泉淵閱讀 239評論 3 0