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

資訊專欄INFORMATION COLUMN

Laravel入門及實(shí)踐,快速上手ThinkSNS+二次開發(fā)

glumes / 2093人閱讀

摘要:在中,提示符可能是。框架使用來(lái)執(zhí)行安裝及管理依賴。為了能訪問(wèn)網(wǎng)頁(yè),要啟動(dòng)程序服務(wù)器。在大多數(shù)類系統(tǒng)中,包括,命令行提示符是符號(hào)。這兩個(gè)操作分別對(duì)應(yīng)于的和,即創(chuàng)建和讀取。首個(gè)表單要在模板中編寫表單,可以使用表單構(gòu)造器。

【摘要】自從ThinkSNS+不使用ThinkPHP框架而使用Laravel框架之后,很多人都說(shuō)技術(shù)門檻抬高了,其實(shí)你與TS+的距離僅僅只是學(xué)習(xí)一個(gè)新框架而已,所以,我們今天來(lái)說(shuō)說(shuō)Laravel的入門。

溫馨提示:

l 本文純干貨,文字和代碼居多,且適合零基礎(chǔ)Laravel學(xué)習(xí)者;

l 本文會(huì)新建一個(gè)名為 blog 的 Laravel 程序,這是一個(gè)非常簡(jiǎn)單的博客。

l 歡迎隨時(shí)關(guān)注ThinkSNS+的研發(fā)動(dòng)態(tài),有產(chǎn)品問(wèn)題、優(yōu)化建議、售前咨詢、售后咨詢、技術(shù)支持都可以咨詢QQ3298713109,手機(jī)18108035545(同微信)。

本文主要內(nèi)容:

· 新建 Laravel 程序,如何連接數(shù)據(jù)庫(kù);

· Laravel 程序的基本文件結(jié)構(gòu);

· MVC(模型,視圖,控制器)和 REST 架構(gòu)的基本原理;

· 如何快速生成 Laravel 程序骨架;

學(xué)習(xí)Laravel前提:你必須是會(huì)PHP語(yǔ)言的程序技術(shù)人員,否則,應(yīng)先學(xué)習(xí)PHP語(yǔ)言,再學(xué)習(xí)laravel框架,最后,才能上手社交系統(tǒng)ThinkSNS+的二次開發(fā),以下是可能使用到的資源:

· PHP 5.4 及以上版本

· 包管理工具 Composer。Composer指南官網(wǎng):https://getcomposer.org/, 中文網(wǎng):http://www.phpcomposer.com/

· SQLite3 數(shù)據(jù)庫(kù)

· PHP 語(yǔ)言官方網(wǎng)站: http://php.net/

一、新建 Laravel 程序

文中的示例代碼使用 $ 表示命令行提示符,你的提示符可能修改過(guò),所以會(huì)不一樣。在 Windows 中,提示符可能是 c:source_code>。

1、安裝 Laravel

打開命令行,跟著以下步驟執(zhí)行下文中所有以 $ 開頭的代碼命令。

l 先確認(rèn)是否安裝了 PHP 5.4 或者以上的版本:

如果你還沒(méi)安裝 PHP,請(qǐng)?jiān)L問(wèn) http://php.net/ ,先安裝PHP。

l 然后,確認(rèn)是否在 PATH 中:

$ sqlite3 --version

l 安裝 Laravel , 通過(guò) Laravel 安裝器

首先, 使用 Composer 全局下載并安裝 Laravel/installer:

$ composer global require "laravel/installer=~1.1"

安裝并且配置成功后, 可以使用命令 laravel new 在您指定的目錄下創(chuàng)建一份全新安裝的 Laravel 應(yīng)用, 如這樣的調(diào)用: laravel new blog 將會(huì)在當(dāng)前目錄下創(chuàng)建一個(gè)叫 blog 的目錄。

Laravel 框架使用 composer 來(lái)執(zhí)行安裝及管理依賴。如果還沒(méi)有安裝它的話,請(qǐng)先從安裝 Composer 開始吧。

安裝Composer之后,您可以通過(guò)終端執(zhí)行下列命令來(lái)安裝 Laravel:

$ composer create-project laravel/laravel your-project-name --prefer-dist

這個(gè)命令會(huì)下載并安裝一份全新的 Laravel 存放在指定的 your-project-name 的目錄中。

2、創(chuàng)建 Blog 程序

Artisan 是 Laravel 內(nèi)建的命令行工具,它提供了一些有用的命令協(xié)助您開發(fā),它是由強(qiáng)大的 Symfony Console 組件所驅(qū)動(dòng)。

l 打開終端,進(jìn)入有寫權(quán)限的文件夾,生成一個(gè)新程序:

$ laravel new blog

或者

$ composer create-project laravel/laravel blog --prefer-dist

這個(gè)命令會(huì)在文件夾 blog 中新建一個(gè) Laravel 程序。

執(zhí)行 laravel new -h 可以查看新程序生成器的所有命令行選項(xiàng)。

l 生成 blog 程序后,進(jìn)入該文件夾:

$ cd blog

blog 文件夾中有很多自動(dòng)生成的文件和文件夾,組成一個(gè) Laravel 程序。

二、Hello, Laravel!

首先,我們來(lái)添加一些文字,在頁(yè)面中顯示。為了能訪問(wèn)網(wǎng)頁(yè),要啟動(dòng)程序服務(wù)器。

$ php artisan serve

上述命令會(huì)啟動(dòng) PHP 內(nèi)建的開發(fā)服務(wù)器,要查看程序,請(qǐng)打開一個(gè)瀏覽器窗口,訪問(wèn)http://localhost:8000 。應(yīng)該會(huì)看到默認(rèn)的 Laravel 信息頁(yè)面:

要想停止服務(wù)器,請(qǐng)?jiān)诿钚兄邪?Ctrl+C 鍵。服務(wù)器成功停止后回重新看到命令行提示符。在大多數(shù)類 Unix 系統(tǒng)中,包括 Mac OS X,命令行提示符是 $ 符號(hào)。

1、顯示“Hello, Laravel!”

要在 Laravel 中顯示“Hello, Laravel!”,需要新建一個(gè)控制器和視圖。

l 創(chuàng)建控制器

控制器可用控制器生成器創(chuàng)建,你要告訴生成器,我想要個(gè)名為“welcome”的控制器,如下所示:

$ php artisan controller:make WelcomeController --only=index

運(yùn)行上述命令后,Laravel 會(huì)生成 app/controllers/WelcomeController.php 文件。生成文件后修改其中的 index 方法:

l 創(chuàng)建視圖:

在 app/views/ 目錄新建文件夾 welcome 并創(chuàng)建文件 index.blade.php ;

在 index.blade.php 文件中添加

Hello, Laravel!

;

2、設(shè)置程序的首頁(yè)

我們已經(jīng)創(chuàng)建了控制器和視圖,現(xiàn)在要告訴 Laravel 在哪個(gè)地址上顯示“Hello, Laravel!”。這里,我們希望訪問(wèn)根地址 http://localhost:8000 時(shí)顯示。但是現(xiàn)在顯示的還是歡迎頁(yè)面。

我們要告訴 Laravel 真正的首頁(yè)是什么。

在編輯器中打開 app/routes.php 文件。

我們找到 :

Route::get("/", function()

{

return View::make("hello");

});

修改為:

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

告知 Laravel,訪問(wèn)程序的根路徑時(shí),交給 welcome 控制器中的 index 動(dòng)作處理。

三、開始使用

前文已經(jīng)介紹如何創(chuàng)建控制器、動(dòng)作和視圖,下面我們來(lái)創(chuàng)建一些更實(shí)質(zhì)的功能。

在此之前我們需要修改一些配置:

· app/config/app.php 文件中的 debug 選項(xiàng)設(shè)置為 true (注:開啟開發(fā)模式,更友好的開發(fā)提示);

· app/config/database.php 文件中的 default 選項(xiàng)設(shè)置為 sqlite (注:我們之前選擇 sqlite 作為默認(rèn)數(shù)據(jù)庫(kù));

在博客程序中,我們要?jiǎng)?chuàng)建一些對(duì)象資源,比如文章,人和動(dòng)物,可以被創(chuàng)建、讀取、更新和刪除,這些操作簡(jiǎn)稱 CRUD。

Laravel 提供了資源控制器可以簡(jiǎn)單的建立跟資源相關(guān)的 RESTful 控制器。
創(chuàng)建文章資源后,app/routes.php 文件的內(nèi)容新增如下:

Route::resource("articles", "ArticlesController");

執(zhí)行 $ php artisan routes 任務(wù),會(huì)看到定義了所有標(biāo)準(zhǔn)的 REST 動(dòng)作。輸出結(jié)果中各列的意義稍后會(huì)說(shuō)明。

下一節(jié),我們會(huì)加入新建文章和查看文章的功能。這兩個(gè)操作分別對(duì)應(yīng)于 CRUD 的 C 和 R,即創(chuàng)建和讀取。

1、挖地基

首先,程序中要有個(gè)頁(yè)面用來(lái)新建文章。一個(gè)比較好的選擇是 /articles/create。這個(gè)路由前面已經(jīng)定義了,可以訪問(wèn)。打開 http://localhost:8000/article... ,會(huì)看到如下的路由錯(cuò)誤:

產(chǎn)生這個(gè)錯(cuò)誤的原因是,沒(méi)有定義用來(lái)處理該請(qǐng)求的控制器。解決這個(gè)問(wèn)題的方法很簡(jiǎn)單:創(chuàng)建名為 ArticlesController 的控制器。執(zhí)行下面的命令即可:

$ php artisan controller:make ArticlesController

打開剛生成的 app/controllers/ArticlesController.php 文件,控制器就是一個(gè)類,繼承自 BaseController。在這個(gè) ArticlesController 類中定義了對(duì)應(yīng)的資源動(dòng)作。動(dòng)作的作用是處理文章的 CRUD 操作。

修改 ArticlesController.php 文件中的

public function create()    

{

    //

}

public function create()

{

    return View::make("articles.create");

}

在 PHP 中,方法分為 public、private 和 protected 三種,只有 public 方法才能作為控制器的動(dòng)作。

現(xiàn)在刷新 http://localhost:8000/article... ,會(huì)看到一個(gè)新錯(cuò)誤:

產(chǎn)生這個(gè)錯(cuò)誤的原因是,Laravel 希望這樣的常規(guī)動(dòng)作有對(duì)應(yīng)的視圖,用來(lái)顯示內(nèi)容。沒(méi)有視圖可用,Laravel 就報(bào)錯(cuò)了。

新建文件 app/views/articles/create.blade.php,寫入如下代碼:

New Article

再次刷新 http://localhost:8000/article... , 可以看到頁(yè)面中顯示了一個(gè)標(biāo)頭?,F(xiàn)在路由、控制器、動(dòng)作和視圖都能正常運(yùn)行了。接下來(lái)要編寫新建文章的表單了。

2、首個(gè)表單

要在模板中編寫表單,可以使用“表單構(gòu)造器”。Laravel 中常用的表單構(gòu)造器是 Form。在 app/views/articles/create.blade.php 文件中加入以下代碼:

現(xiàn)在刷新頁(yè)面,會(huì)看到上述代碼生成的表單。在 Laravel 中編寫表單就是這么簡(jiǎn)單!

在 Form 方法的塊中,F(xiàn)orm::text 創(chuàng)建了兩個(gè)標(biāo)簽和兩個(gè)文本字段,一個(gè)用于文章標(biāo)題,一個(gè)用于文章內(nèi)容。最后,F(xiàn)orm::submit 創(chuàng)建一個(gè)提交按鈕。

修改 app/views/articles/create.blade.php 文件中的 Form::open,改成這樣:

{{ Form::open(array("url" => "articles")) }}

這里,我們把 url 參數(shù)的值設(shè)為 articles 。對(duì)應(yīng)的地址是 /articels,默認(rèn)情況下,這個(gè)表單會(huì)向這個(gè)路由發(fā)起 POST 請(qǐng)求。這個(gè)路由對(duì)應(yīng)于 ArticlesController 控制器的 store 動(dòng)作。

表單寫好了,路由也定義了,現(xiàn)在可以填寫表單,然后點(diǎn)擊提交按鈕新建文章了。

3、創(chuàng)建文章

提交表單,會(huì)看到一個(gè)白屏。現(xiàn)在暫且不管這個(gè)錯(cuò)誤。store 動(dòng)作的作用是把新文章保存到數(shù)據(jù)庫(kù)中。

提交表單后,其中的字段以參數(shù)的形式傳遞給 Laravel。這些參數(shù)可以在控制器的動(dòng)作中使用,完成指定的操作。要想查看這些參數(shù)的內(nèi)容,可以把 store 動(dòng)作改成:

public function store()

{

    dd(Input::all());

}

dd 函數(shù)為 Laravel 內(nèi)置的打印輸出函數(shù),Input::all() 取得所有發(fā)出請(qǐng)求時(shí)傳入的輸入數(shù)據(jù)。

如果現(xiàn)在再次提交表單,不會(huì)再看到白屏錯(cuò)誤,而是會(huì)看到類似下面的文字:

store 動(dòng)作把表單提交的參數(shù)顯示出來(lái)了。不過(guò)這么做沒(méi)什么用,看到了參數(shù)又怎樣,什么都沒(méi)發(fā)生。

4、創(chuàng)建 Article 模型

在 Laravel 中,模型的名字使用單數(shù),對(duì)應(yīng)的數(shù)據(jù)表名使用復(fù)數(shù)。

創(chuàng)建 app/models/Article.php 并寫入以下代碼:

注意我們并沒(méi)有告訴 Eloquent Article 模型會(huì)使用哪個(gè)數(shù)據(jù)庫(kù)表。若沒(méi)有特別指定,系統(tǒng)會(huì)默認(rèn)自動(dòng)對(duì)應(yīng)名稱為「類名稱的小寫復(fù)數(shù)形態(tài)」的數(shù)據(jù)庫(kù)表。所以,在上面的例子中, Eloquent 會(huì)假設(shè) Article 將把數(shù)據(jù)存在 articles 數(shù)據(jù)庫(kù)表。

5、運(yùn)行遷移

使用 Artisan CLI 的 migrate:make 命令建立遷移文件:

$ php artisan migrate:make create_articles_table --create=articles

遷移文件會(huì)建立在 app/database/migrations 目錄下,文件名會(huì)包含時(shí)間戳,用于在執(zhí)行遷移時(shí)用來(lái)決定順序。

app/database/migrations/20140903084339createarticlestable.php (你的遷移文件名可能有點(diǎn)不一樣)文件的內(nèi)容如下所示:

修改其中的創(chuàng)建代碼為:

在這個(gè)遷移中定義了一個(gè)名為 up 的方法,在運(yùn)行遷移時(shí)執(zhí)行。up 方法中定義的操作都是可以通過(guò) down 方法實(shí)現(xiàn)可逆的,Laravel 知道如何撤銷這次遷移操作。運(yùn)行遷移后,會(huì)創(chuàng)建 articles 表,以及一個(gè)字符串字段和文本字段。同時(shí)還會(huì)創(chuàng)建兩個(gè)時(shí)間戳字段,用來(lái)跟蹤記錄的創(chuàng)建時(shí)間和更新時(shí)間。

然后,使用 Artisan 命令運(yùn)行遷移:

$ php artisan migrate

Laravel 會(huì)執(zhí)行遷移操作,告訴你創(chuàng)建了 articles 表。

Migration table created successfully. Migrated: 20140903084339createarticlestable

6、在控制器中保存數(shù)據(jù)

再回到 ArticlesController 控制器,我們要修改 store 動(dòng)作,使用 Article 模型把數(shù)據(jù)保存到數(shù)據(jù)庫(kù)中。打開 app/controllers/ArticlesController.php 文件,把 store 動(dòng)作修改成這樣:

同時(shí)在 app/models/Article.php 添加 :

protected $fillable = array("title", "text");

fillable 屬性允許在動(dòng)作中調(diào)用模型的 create 方法使用 title 和 text 屬性。

再次訪問(wèn) http://localhost:8000/article... ,填寫表單,還差一步就能創(chuàng)建文章了。

7、顯示文章

和前面一樣,我們要在 app/controllers/ArticlesController.php 文件中更改 show 動(dòng)作,以及相應(yīng)的視圖文件。

然后,新建 app/views/articles/show.blade.php 文件,寫入下面的代碼:

做了以上修改后,就能真正的新建文章了。訪問(wèn) http://localhost:8000/article... ,自己試試。

8、列出所有文章

我們還要列出所有文章,對(duì)應(yīng)的路由是:

GET|HEAD articles | articles.index | ArticlesController@index

在 app/controllers/ArticlesController.php 文件中,修改 ArticlesController 控制器 index 動(dòng)作:

然后編寫這個(gè)動(dòng)作的視圖,保存為 app/views/articles/index.blade.php:

現(xiàn)在訪問(wèn) http://localhost:8000/articles ,會(huì)看到已經(jīng)發(fā)布的文章列表。

9、添加鏈接

至此,我們可以新建、顯示、列出文章了。下面我們添加一些鏈接,指向這些頁(yè)面。

打開 app/views/welcome/index.blade.php 文件,添加:

{{ link_to_route("articles.index", "My Blog") }}

linktoroute 是 Laravel 內(nèi)置的視圖幫助方法之一,根據(jù)提供的文本和地址創(chuàng)建超鏈接。這上面這段代碼中,地址是文章列表頁(yè)面。

接下來(lái)添加到其他頁(yè)面的鏈接。先在 app/views/articles/index.blade.php 中添加“New Article”鏈接,放在

標(biāo)簽之前:

{{ link_to_route("articles.create", "New article") }}

點(diǎn)擊這個(gè)鏈接后,會(huì)轉(zhuǎn)向新建文章的表單頁(yè)面。

然后在 app/views/articles/create.blade.php 中添加一個(gè)鏈接,位于表單下面,返回到 index 動(dòng)作:

{{ link_to_route("articles.index", "Back") }}

最后,在 app/views/articles/show.blade.php 模板中添加一個(gè)鏈接,返回 index 動(dòng)作,這樣用戶查看某篇文章后就可以返回文章列表頁(yè)面了:

{{ link_to_route("articles.index", "Back") }}

10、添加數(shù)據(jù)驗(yàn)證

在 app/controllers/ArticlesController.php 文件中,修改 ArticlesController 控制器 store 動(dòng)作:

然后修改 app/views/articles/create.blade.php 添加 :

再次訪問(wèn) http://localhost:8000/article... ,嘗試發(fā)布一篇沒(méi)有標(biāo)題的文章,會(huì)看到一個(gè)很有用的錯(cuò)誤提示。

11、更新文章

我們已經(jīng)說(shuō)明了 CRUD 中的 CR 兩種操作。下面進(jìn)入 U 部分,更新文章。

首先,要在 ArticlesController 中更改 edit 動(dòng)作:

視圖中要添加一個(gè)類似新建文章的表單。新建 app/views/articles/edit.blade.php 文件,寫入下面的代碼:

這里的表單指向 update 動(dòng)作

method: put ( patch ) 選項(xiàng)告訴 Laravel,提交這個(gè)表單時(shí)使用 PUT 方法發(fā)送請(qǐng)求。根據(jù) REST 架構(gòu),更新資源時(shí)要使用 HTTP PUT 方法。

然后,要在 app/controllers/ArticlesController.php 中更新 update 動(dòng)作:

最后,我們想在文章列表頁(yè)面,在每篇文章后面都加上一個(gè)鏈接,指向 edit 動(dòng)作。打開 app/views/articles/index.blade.php 文件,在“Show”鏈接后面添加“Edit”鏈接:

我們還要在 app/views/articles/show.blade.php 模板的底部加上“Edit”鏈接:

{{ link_to_route("articles.index", "Back") }} |{{ link_to_route("articles.edit", "Edit", $article->id) }}

12、使用局部視圖去掉視圖中的重復(fù)代碼

下面使用局部視圖去掉兩個(gè)視圖中的重復(fù)代碼。

新建 app/views/notifications.blade.php 文件,寫入以下代碼:

下面來(lái)修改 app/views/articles/creat.blade.php 和 edit.blade.php 視圖,使用新建的局部視圖,把其中的上面代碼全刪掉,替換成:

@include("notifications")

13、刪除文章

現(xiàn)在介紹 CRUD 中的 D,從數(shù)據(jù)庫(kù)中刪除文章。按照 REST 架構(gòu)的約定,刪除文章的路由是:

DELETE articles/{articles} | articles.destroy | ArticlesController@destroy

刪除資源時(shí)使用 DELETE 請(qǐng)求。如果還使用 GET 請(qǐng)求,可以構(gòu)建如下所示的惡意地址:

look at this cat!

刪除資源使用 DELETE 方法,路由會(huì)把請(qǐng)求發(fā)往 app/controllers/ArticlesController.php 中的 destroy 動(dòng)作。修改 destroy 動(dòng)作:

想把記錄從數(shù)據(jù)庫(kù)刪除,可以在模型對(duì)象上調(diào)用 destroy 方法。最后,在 index 動(dòng)作的模板(app/views/articles/index.blade.php)中加上“Destroy”鏈接:

恭喜,現(xiàn)在你可以新建、顯示、列出、更新、刪除文章了,完成了Laravel的第一次實(shí)踐,祝您早日適應(yīng)ThinkSNS+的技術(shù)框架,更多內(nèi)容,請(qǐng)?jiān)L問(wèn)www.thinksns.com

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

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

相關(guān)文章

  • ThinkSNS Plus PHP開發(fā)概述

    摘要:讀音,全稱,是系列產(chǎn)品一個(gè)重要版本,其軟件識(shí)別名稱為即是一個(gè)基于框架進(jìn)行開發(fā)的一個(gè)功能強(qiáng)大易于開發(fā)和強(qiáng)拓展的社交系統(tǒng)。另一方面,程序采用嚴(yán)格模式,從根本上盡量避免弱級(jí)錯(cuò)誤的產(chǎn)生。哪怕你不會(huì)框架,也能讓你入門框架基礎(chǔ),并勝任應(yīng)用開發(fā)。 Plus (讀音:[pl?s],全稱:ThinkSNS+ [θ??k es en es pl?s],是 ThinkSNS 系列產(chǎn)品一個(gè)重要版本,其軟...

    Taste 評(píng)論0 收藏0
  • 如何在 Laravel 中 “規(guī)范” 的開發(fā)驗(yàn)證碼發(fā)送功能【社交系統(tǒng)ThinkSNS研發(fā)日記十一】

    摘要:需求場(chǎng)景發(fā)送驗(yàn)證碼或者消息通知,可發(fā)送到手機(jī)或郵箱中。完成首先,在中的規(guī)范就是使用的消息通知,這里基于場(chǎng)景為驗(yàn)證碼。所以我們?cè)隍?yàn)證碼模型中添加是完全符合通知的正確使用的。 順便發(fā)個(gè)小通知:7月15日ThinkSNS+開源版發(fā)布,同時(shí)非開源的APP也走出內(nèi)測(cè)階段,體驗(yàn)二維碼也全面發(fā)布體驗(yàn)。 什么是ThinkSNS ? ThinkSNS(簡(jiǎn)稱TS),一款全平臺(tái)綜合性社交系統(tǒng),為國(guó)內(nèi)外大中小...

    Flands 評(píng)論0 收藏0

發(fā)表評(píng)論

0條評(píng)論

最新活動(dòng)
閱讀需要支付1元查看
    <