2. Laravel視圖View和路由Route初探 - Laravel從零開始教程

在程序界最熟悉的莫過於"Hello World",經過輸出"Hello Word",咱們能瞭解路由和最基礎的視圖,這一小節,咱們主要是學習下如何建立路由,如何加載視圖,這節很是簡單,跟着作就行。php

上一節咱們經過laravel new 項目名安裝了Laravel 5.3的框架(默認安裝最新版本的框架), 由於5.3的目錄結構稍許有點變化,咱們再安裝一個laravel 5.2的框架,經過5.2版原本演示。css

➜  cd /usr/local/var/www  # 進入到咱們想要安裝Laravel5.2框架的路徑  
➜  laravel new Laravel52 --5.2  #經過Laravel install工具安裝Laravel 5.2

而後,進入Laravel52 目錄,用sublime打開Laravel52項目html

➜ cd Laravel52
➜ subl .

打開以下:
打開Laravel52項目laravel

若是是第一次接觸Laravel框架,面對着這麼多已經存在的目錄,確定是有點不知所措的,好比說app目錄下的Providers,Policies等,這麼文件夾的做用是什麼呢?咱們剛開始學的時候,不用想着一會兒全弄明白,能夠從最基礎的開始,只要咱們能夠用Laravel去作點什麼的時候,邊作邊學,那就不會以爲Laravel框架不易上手了。web

ok,下面咱們就來看下路由,打開app->Http->route.php,經過route這個名字咱們就知道路由(url)文件應該寫在這裏,全部的HTTP請求咱們都會經過這個文件來分發出去。api

當咱們打開route.php文件的時候,裏面自帶了這樣的一個函數:瀏覽器

Route::get('/', function () {
    return view('welcome');
});

上面這句代碼咱們使用了Route這個類的get方法,並傳入兩個參數給它,第一個參數是咱們要設置的uri,這裏咱們定義成/,一般都是訪問到網站的主頁,第二個參數是一個閉包函數,固然在正式開發的時候咱們傳入的第二個參數都是一個控制器類加上該類中的一個方法,如:bash

Route::get('/', 'PagesController@home'); #PagesController是一個控制器類,home是該類下面的一個方法。

咱們暫時不去考慮控制器類,這不是本節要學習的內容,咱們仍是回頭來看上面的閉包函數中的這句話:服務器

return view('welcome');

這裏的view()函數,就能夠對應咱們要顯示的視圖層了,當中的welcome是視圖文件的名稱,咱們能夠在resources->views下找到welcome.blade.php這個文件,該文件就是上面代碼要顯示的view層頁面了,那麼上面的代碼的意思就是下面這樣的:閉包

return view('welcome.blade.php');

固然上面這樣的代碼運行時是會報錯的,laravel運行view('welcome')函數的時候,會自動去找welcome.blade.php這個視圖文件,因此咱們書寫的時候,只須要寫上.blade.php前面的單詞便可。那麼這裏也許有人會有疑問,爲何視圖文件要取名爲xxx.blade.php呢,那是由於laravel的視圖頁面是使用blade模版引擎的,因此必須加上.blade.php的後綴,那什麼是balde模版呢,這樣說吧,你應該知道一個老掉牙的smarty模版吧,嗯,這樣說你應該明白了。

咱們打開welcome.blade.php文件,發現裏面都是一些html代碼,固然咱們是能夠在這個文件中書寫php代碼的,該文件默認的內容以下:

<!DOCTYPE html>
<html>
    <head>
        <title>Laravel</title>

        <link href="https://fonts.googleapis.com/css?family=Lato:100" rel="stylesheet" type="text/css">

        <style>
            html, body {
                height: 100%;
            }

            body {
                margin: 0;
                padding: 0;
                width: 100%;
                display: table;
                font-weight: 100;
                font-family: 'Lato', sans-serif;
            }

            .container {
                text-align: center;
                display: table-cell;
                vertical-align: middle;
            }

            .content {
                text-align: center;
                display: inline-block;
            }

            .title {
                font-size: 96px;
            }
        </style>
    </head>
    <body>
        <div class="container">
            <div class="content">
                <div class="title">Laravel 5</div>
            </div>
        </div>
    </body>
</html>

從上面的頁面咱們能夠看出,這個頁面就是顯示一下Laravel 5這幾個文字,咱們下面就來運行一下Laravel, 仍是打開終端,進入到咱們的項目Laravel52目錄中,而後咱們執行php artisan serve命令

運行Laravel項目

咱們打開瀏覽器,輸入http://localhost:8000/

運行效果

咱們的laravel第一個頁面是跑起來了,可是確定有人會對php artisan serve這條命令不理解,不少phper作php項目的時候都是寫完代碼,而後經過瀏覽器或者使用postman一陣調試,不多會使用到php的命令行模式。

若是用過php命令行模式,就不難理解,最簡單的來講,咱們查看php的版本php -v, 咱們啓用php的內置web服務器php -S,咱們在命令行運行一段php代碼php -r "echo 'Hello World';" , 或者咱們在命令行運行一個php文件php -f "my_script.php",而php artisan則是一個更增強大的命令行工具.咱們能夠執行下php artisan這條命令,它會幫咱們列舉出artisan的命令,都有對應的英文解釋,這裏你們必定要去先看看,瞭解一下,由於之後咱們會常常用到這個artisan,你會發現它是多麼的強大,多麼的好用.

到如今爲止,咱們幾乎尚未寫過一句代碼,下面咱們來嘗試寫一段,打開route.php文件, 咱們修改一下之間的代碼以下:

Route::get('/', function () {
    return 'Hello World';
});

在Laravel中,咱們能夠返回view(),也能夠直接返回一個字符串到頁面上,咱們打開瀏覽器,仍是輸入http://localhost:8000/ 這時咱們就能看見頁面輸出了久違的Hello World了。(若是你關閉了php內置的web服務器,你還須要用終端在項目根目錄下執行php artisan serve 命令來啓動php的內置web服務器 )

那麼若是咱們想要定義一個http://localhost:8000/about的路徑呢,咱們能夠這麼寫:

Route::get('about', function () {
    return 'About Page';
});

打開瀏覽器,輸入http://localhost:8000/about頁面就能顯示About Page的這幾個文字了。

下面,咱們來試下使用view(),將函數改爲下面這樣:

Route::get('about', function () {
    return view('about');
});

而後,咱們須要到resources->views目錄下新建一個about.blade.php的文件,咱們能夠複製welcome.blade.php文件中的內容,而後將

<div class="title">Laravel 5</div>

改爲

<div class="title">About Page</div>

上面的代碼是確定能運行的,這裏我就不截圖了,一般狀況下,咱們的視圖文件都會分類放在某一個文件夾下面,而不會直接放在resources/views目錄下,好比說咱們的路徑是這樣的resources/views/pages/about.blade.php

pages/about頁面

那麼咱們的路由文件中應該這麼寫:

Route::get('about', function () {
    return view('pages.about'); # 這裏的pages表明目錄,about是表明文件
});

固然了,你也能夠這麼寫:

Route::get('about', function () {
    return view('pages/about'); # 這裏的pages表明目錄,about是表明文件
});

不過laravel官方是推薦咱們view('pages.about');這麼寫,這樣代碼看上去會美觀不少。

好了,咱們刷新下瀏覽器

顯示about page

好了,到如今咱們已經學習了Laravel的路由和視圖的一些東東了,本節到這裏結束了。

從零開始學Laravel教程目錄

相關文章
相關標籤/搜索