手把手教你跑Larave框架實戰筆記系列之二

系列之一爲童鞋們搭好了舞臺,今天正式登臺跑框架了……php

從「路由」開始,玩一把「Hellow world!」html

Route::get(‘/’, function () {laravel

//return view(‘welcome’);web

return ‘Hellow world!’;編程

});閉包

laravel 的每個路由是須要手動定義的,默認歡迎頁面(參數)app

是 resources/views 目錄下的文件名welcome.blade.php去掉 blade.php後綴,對應的路由框架

url 是 「http://www.rk.com/ide

依此類推,把根目錄「/」換成子目錄「tests」模擬歡迎頁面新定義一個路由:函數

Route::get(‘tests’, function () {

return view(‘logo’);

});

調用頁面(參數)

是 resources/views 目錄下的文件名logo.blade.php去掉 blade.php後綴

多多找一下路由(R)與(V)示例文件模仿書寫格式,依此類推,只要格式相互對應起來就能夠發生關聯,調用視圖

url 就應該是 「http://www.rk.com/tests

就是這樣子,把MVC中的路由和視圖(V)關聯起來了,×××長征開始了第一步,之後編程的日子裏還會隨時這樣玩……

以上例子說明了路由能夠分發請求,這就比如家裏的路由器能夠分發多路請求,知足手機、電視……能夠有線鏈接,也能夠wifi
路由中還能夠引入 html 頁面,能夠在 route/web.php 中搞定一切。
可是若是把業務邏輯都寫入到路由中,那路由就變成了原生開發「搭積木」,web.php頁面代碼龐大難以維護。
接下來控制器就登臺表演了……
把業務邏輯寫在控制器中,路由只負責轉發請求到指定的控制器便可。

先前,咱們已經在PhpStorm中安裝了暱稱爲artisan 的 laravel 命令行接口,也就是根目錄下的 artisan 文件,用法是輸入命令:

Php artisan
意思就是使用 php 的命令行模式運行 artisan.php 文件,php命令行下是能夠不須要文件後綴就能識別的,因此根目錄下的 artisan 文件並無帶上 .php

Laravel構架之因此被讚譽爲「爲Web藝術家而生」,其優雅、藝術、現代主要就是表如今「用少許的代碼來幹不少漂亮活……」

php artisan.php 命令行主要有兩個做用:
第一是生成文件,
第二是執行任務。
如今用它生成控制器(C)文件:

〖法一〗若是不帶任何參數用它來生成普通控制器模板的話,輸入命令:

Php artisan make:controller ArticleController
見證奇蹟的時候又要到來了……
結果是生成了一個 app/Http/Controllers/ArticleController.php 文件;

namespace App\Http\Controllers;

use Illuminate\Http\Request;

class ArticleController extends Controller

{

//

}

不但自動建立了文件,並且還定義好了命名空間,繼承好了父級控制器,在這個模板上直接寫管理MySQL的增、刪、改、查的方法就能夠了;

〖法二〗不想一來就自定義語句或方法,想用artisan先生成通用方法代碼,再根據須要少許修改代碼,也就是說用有點高逼格的方式來幹寫代碼苦力活,那麼只需加個–resource選項參數:

Php artisan make:controller ArticleController--resource
不但增、刪、改、查的方法都定義好了,連註釋都給寫好了。這實際上是按 RESTful 規範生成的格式,除了 GET POST 它還包含了一大堆請求方式:
PUT 、 PATCH 、 DELETE 、HEAD 、OPTIONS
也就是說 Route:: 後面還能夠跟上面這些方法。

視圖如何用?除了在路由中直接調用外,就是能夠在程序中用函數來調用:例如調用視圖admin/index.blade.php就在程序中用這個方法

public function index() {

return view(‘admin/index’);

}

就好了,視圖使用容易理解。那麼,控制器如何用?固然是放在路由中直接替代閉包函數來使用。由於路由(R)除了請求調用視圖(V)外,更多的是請求來幹太多的事,比方說處理數據模型(M)等等,若是把幹這些活的代碼都放這個閉包函數中是臃腫且難以維護的,因此才引入控制器這個中間件。很顯然,控制器就是來替代路由中這第二個參數的閉包函數的。路由(R)-控制器(C)-視圖(V)就這樣輕鬆關聯起來了,三者玩起來思路也很清晰,不難理解。
路由(R)-控制器(C)用起來也很是簡單,直接寫控制器名在路由(R)閉包函數的這個位置便可,而後用 @ 符號分割控制器和控制器的方法(能夠是形參或閉包函數),例如:

Route::get(‘article/index’, ‘ArticleController@index’)

Route::post(‘article/store’, ‘ArticleController@store’)

當控制器(C)用處理數據模型時,就變成了:路由(R)-控制器(C)-數據模型(M)-視圖(V)也關聯起來了,四者不是同時一塊兒用,就可能有多種排列組合,處理多種事務,響應多種請求

相關文章
相關標籤/搜索