成人国产在线小视频_日韩寡妇人妻调教在线播放_色成人www永久在线观看_2018国产精品久久_亚洲欧美高清在线30p_亚洲少妇综合一区_黄色在线播放国产_亚洲另类技巧小说校园_国产主播xx日韩_a级毛片在线免费

資訊專欄INFORMATION COLUMN

Laravel 5 系列教程二:路由,視圖,控制器工作流程

awesome23 / 2126人閱讀

摘要:但是不用擔心,我們后續(xù)的教程會陸續(xù)講解相關(guān)的內(nèi)容。所以上面的路由注冊其實就是負責解決訪問的時候的響應(yīng)。

原文來自:https://jellybool.com/post/programming-with-laravel-5-routers-views-controllers-workflow

免費視頻教程地址 https://laravist.com/series/laravel-5-basic

上一篇教程我們走了那么長的路,終于把Laravel安裝好了,這一篇教程我們就要進入Laravel的神奇世界了,主要是講解Laravel的Router,Views,Controllers的工作流程,目的也就是讓大家明白Laravel在處理一個get請求的時候是如何工作的。

在開始之前,我們首先得將我們的服務(wù)器啟動起來,如果你使用Laravel的artisan,你可以直接:

php artisan serve

然后訪localhost:8000,就可以看到Laravel了

我這里還是使用Homestead:

homestead up

homestead 啟動之后,我們就可以愉快開始寫代碼了。

Laravel 文件目錄

然后訪問我們上一節(jié)設(shè)置好的域名:blog.dev,也可以看到我們的Laravel。如果你在安裝或者使用Homestead的時候遇到任何問題,都可以直接問我。

首先,對于一個新手來接觸Laravel的時候,可能你會對Laravel的文件目錄感覺到很困惑,因為實在是太多東西了,到底什么是Console,Events,Providers...一大堆東西在這里。

但是不用擔心,我們后續(xù)的教程會陸續(xù)講解相關(guān)的內(nèi)容。

目前我們關(guān)心的是Http/這個文件夾,你可以就簡單地記憶為這個文件夾就是用來出來http請求的,比如我們在訪問blog.dev的時候,Laravel是怎么將那個可愛的頁面響應(yīng)給我們的?這個就可以在app/Http/routes.php這個文件里面找到,就像上圖顯示的一樣:

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

這是什么意思呢?其實這里你可以這樣理解:我們注冊這樣一個路由,當用戶發(fā)送一個get請求(簡單理解就是在瀏覽器地址欄中訪問)的時候,什么樣的get請求呢?也就是什么樣的瀏覽地址呢?恩,就是網(wǎng)站的根目錄,也就是當一個用戶訪問我們站點的根目錄的時候,我們應(yīng)該給用戶什么樣的響應(yīng)呢?這里我們就直接執(zhí)行一個函數(shù)function () {},這個函數(shù)里面就負責加載一個視圖return view("welcome");,這個試圖文件位于resources/views/welcome.blade.php,這里的試圖文件后綴名blade.php可能會比較疑惑,因為Laravel使用的是blade的模板引擎,如果你接觸過其他的模板引擎如Twig,Smarty等,對模板引擎的理解可能會清晰一點。但是如果你在這里還是不太明白,沒有關(guān)系,我后續(xù)會有專門的課程介紹blade模板?,F(xiàn)在需要記住的是:Laravel的模板文件就是blade.php結(jié)尾的。

你可以直接打開resources/views/welcome.blade.php這個文件來看,里面其實就是一些HTML代碼,easy enough。

所以上面的路由注冊其實就是負責解決訪問blog.dev的時候的響應(yīng)。那么我們來嘗試一個Hello World簡單的返回:

Route::get("/", function () {
    return "Hello World";
//    return view("welcome");
});

回到瀏覽器,再次訪問blog.dev,我們就會看到上面寫的Hello World。

參數(shù)

試著傳入?yún)?shù),我們重新注冊一個路由:

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

Route::get("user/{name}", function ($name) {
    return "Hello ".$name;
});

上面第二個就是我們自己重新注冊的路由,在路由中得變量用大括號{}包裹起來,然后在處理函數(shù)中接收這個參數(shù),訪問http://blog.dev/user/guys,可以看到下面的返回結(jié)果。

上面這個時候,我們?nèi)绻L問http://blog.dev/user,這是報錯的,因為這個路由期望你在后面輸入一個變量$name,但是你并沒有,所以會報錯,我們可以通過可選參數(shù)來實現(xiàn)這個目的

可選參數(shù):
Route::get("user/{name?}", function ($name = null) {
    return "Hello ".$name;
});

這個時候,再次訪問http://blog.dev/user就不會報錯了,但是貌似這個時候只返回了Hello,我們也可以設(shè)置一個默認值:

Route::get("user/{name?}", function ($name = "JellyBool") {
    return "Hello ".$name;
});

這個時候,如果我們沒有輸入$name這個變量,我們會返回 Hello JellyBool

使用控制器

上面注冊的這些路由是直接使用了匿名函數(shù)來返回字符串或加載視圖給我們,但是我們的控制器(controller)去哪里了呢?我們怎么使用控制器呢(controllers)?首先我們需要明白,在注冊路由是使用控制器在Laravel中大概是這樣寫的:

Route::get("/","ArticleController@index");

我們將routes.php中原來的注冊路由全部刪掉,只保留上面這一行代碼:這行代碼的意思是,當用戶請求我們的網(wǎng)站跟目錄的時候,我需要找到ArticleController并執(zhí)行它的index方法,接下來,我們就需要創(chuàng)建我們的ArticleController了:

在命令行中執(zhí)行:

php artisan make:controller ArticleController

上一篇文章說過artisan這個工具很強大,他可以用來生成我們在開發(fā)當中需要的很多東西,給我們的開發(fā)帶來了很多的便利,如果你花點時間慢慢適應(yīng)一下,我敢肯定,你以后會愛上Laravel的,會愛上artisan的。這里只是使用了artisanmake:controller命令,其實artisan可以干的事情很多,我們在這個教程中會一一接觸到,如果你迫不及待,可以直接看官方文檔:

http://laravel.com/docs/5.1/artisan

上面的命令給我們在app/Http/Controllers/目錄下生成了ArticleController.php,我們打開它來看看:

在這個文件里面,Laravel幫我們生成了一堆的方法:index(),show()create()...等,然后我們剛剛在Router(routes.php文件)中注冊的路由需要使用ArticleController的index方法,我們就在index()方法里面加載一個視圖:

public function index()
    {
        return view("articles.lists");
    }
創(chuàng)建視圖文件

這個視圖文件應(yīng)該是位于resources/views/articles/lists.blade.php,但是在views文件夾當中,我們并沒有articles/這個文件夾和lists.blade.php,所以我們需要手動創(chuàng)建之。

這里需要注意的是,Laravel的view()方法會默認從views文件夾查找視圖文件,所以你不用在view()方法中加入resources/views這個路徑,而且你也不用將blade.php寫上,Laravel會自動處理這些事情,至于views()方法articles.lists中得.就使用了路徑別名,你也可以使用/來寫成這樣articles/lists

創(chuàng)建好之后,在articles/lists.blade.php寫入簡單地HTML代碼:




    
    Article lists page
    

這是文章列表頁面

然后訪問blog.dev/,我們就可以看到上面的模板內(nèi)容了:

到這里,不知道你對Laravel的Router,Views,Controllers這三個的工作流程有沒有一個清晰的認識,通常我們需要實現(xiàn)某個功能(或者說新創(chuàng)建一個頁面)都是這樣的:

1. 在routes.php中注冊路由 ---> 2. 創(chuàng)建對于的控制器 ---> 3. 在控制器中得對于方法加載視圖

對應(yīng)得實際操作大概是這樣的:

1. Route::get("/","ArticleController@index");

2. php artisan make:controller ArticleController

3. public function index()
    {
        return view("articles.lists");
    }
下一節(jié)

關(guān)于Laravel的Router,Views,Controllers的工作流程就大概講到這里,如果你有任何疑問,可以隨時在評論里面問我。然后下一節(jié)的內(nèi)容會講以下的內(nèi)容:

數(shù)據(jù)庫的配置和Laravel的Migration用法

將變量傳給視圖文件

blade模板的基本用法

最后:

Happy Hacking

文章版權(quán)歸作者所有,未經(jīng)允許請勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請注明本文地址:http://systransis.cn/yun/21080.html

相關(guān)文章

  • Laravel 5 系列入門教程)【最適合中國人的 Laravel 教程

    摘要:原文發(fā)表在我的個人網(wǎng)站系列入門教程二最適合中國人的教程本教程示例代碼見大家在任何地方卡住,最快捷的解決方式就是去看我的示例代碼。 原文發(fā)表在我的個人網(wǎng)站:Laravel 5 系列入門教程(二)【最適合中國人的 Laravel 教程】 本教程示例代碼見:https://github.com/johnlui/Learn-Laravel-5 大家在任何地方卡住,最快捷...

    未東興 評論0 收藏0
  • Laravel 5系列教程五:MVC的基本流程

    摘要:原文來自免費視頻教程地址期間受到很多私事影響,終于還是要好好寫寫的教程了。我們來實現(xiàn)這個功能顯示文章詳情通過文章展示來快速體驗上面的流程注冊路由來到中,我們增加一個路由上面的路由指定我們需要加載中的方法。 原文來自: https://jellybool.com/post/programming-with-laravel-5-model-controller-view-basic-wor...

    mrcode 評論0 收藏0
  • Laravel 5系列教程十:實現(xiàn)文章的修改

    摘要:來看看具體的步驟注冊路由在中,注冊我們的編輯頁面的路由這個路由接受一個參數(shù),意為文章的,我們會需要根據(jù)這個來查詢我們要修改的文章。然后渲染視圖,并將查詢到的和傳給視圖。下面我打算再開一個系列說說的新特性 原文來自https://laravist.com/article/20 免費視頻教程地址 https://laravist.com/series/laravel-5-basic La...

    pf_miles 評論0 收藏0
  • Laravel 5 系列入門教程(三)【最適合中國人的 Laravel 教程

    摘要:原文發(fā)表在我的個人網(wǎng)站系列入門教程三最適合中國人的教程本教程示例代碼見大家在任何地方卡住,最快捷的解決方式就是去看我的示例代碼。教程三代碼快照下一步系列入門教程四最適合中國人的教程完結(jié) 原文發(fā)表在我的個人網(wǎng)站:Laravel 5 系列入門教程(三)【最適合中國人的 Laravel 教程】 本教程示例代碼見:https://github.com/johnlui/Learn-L...

    xcold 評論0 收藏0
  • laravel5.5手寫教程3的基于資源路由的CURD操作(適合初學者)

    摘要:新增一篇新聞新增失敗輸入不符合要求請輸入標題請輸入內(nèi)容新增文章上面代碼中的是為了防攻擊的,每個表單都必須存在。 本文我將結(jié)合簡單例子,完成laravel框架下的增刪改查,希望會對大家有所幫助。在進行之前,大家應(yīng)該保證自己的數(shù)據(jù)庫鏈接無誤,artisan命令能正常使用,路由鏈接無問題。 一、創(chuàng)建控制器、路由避免影響其他路由,我們先注釋掉之前聯(lián)系時編寫的所有路由。因為上一章我們已經(jīng)學會建立...

    olle 評論0 收藏0

發(fā)表評論

0條評論

最新活動
閱讀需要支付1元查看
<