国产xxxx99真实实拍_久久不雅视频_高清韩国a级特黄毛片_嗯老师别我我受不了了小说

資訊專欄INFORMATION COLUMN

Laravel入門及實踐,快速上手ThinkSNS+二次開發

glumes / 2077人閱讀

摘要:在中,提示符可能是。框架使用來執行安裝及管理依賴。為了能訪問網頁,要啟動程序服務器。在大多數類系統中,包括,命令行提示符是符號。這兩個操作分別對應于的和,即創建和讀取。首個表單要在模板中編寫表單,可以使用表單構造器。

【摘要】自從ThinkSNS+不使用ThinkPHP框架而使用Laravel框架之后,很多人都說技術門檻抬高了,其實你與TS+的距離僅僅只是學習一個新框架而已,所以,我們今天來說說Laravel的入門。

溫馨提示:

l 本文純干貨,文字和代碼居多,且適合零基礎Laravel學習者;

l 本文會新建一個名為 blog 的 Laravel 程序,這是一個非常簡單的博客。

l 歡迎隨時關注ThinkSNS+的研發動態,有產品問題、優化建議、售前咨詢、售后咨詢、技術支持都可以咨詢QQ3298713109,手機18108035545(同微信)。

本文主要內容:

· 新建 Laravel 程序,如何連接數據庫;

· Laravel 程序的基本文件結構;

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

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

學習Laravel前提:你必須是會PHP語言的程序技術人員,否則,應先學習PHP語言,再學習laravel框架,最后,才能上手社交系統ThinkSNS+的二次開發,以下是可能使用到的資源:

· PHP 5.4 及以上版本

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

· SQLite3 數據庫

· PHP 語言官方網站: http://php.net/

一、新建 Laravel 程序

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

1、安裝 Laravel

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

l 先確認是否安裝了 PHP 5.4 或者以上的版本:

如果你還沒安裝 PHP,請訪問 http://php.net/ ,先安裝PHP。

l 然后,確認是否在 PATH 中:

$ sqlite3 --version

l 安裝 Laravel , 通過 Laravel 安裝器

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

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

安裝并且配置成功后, 可以使用命令 laravel new 在您指定的目錄下創建一份全新安裝的 Laravel 應用, 如這樣的調用: laravel new blog 將會在當前目錄下創建一個叫 blog 的目錄。

Laravel 框架使用 composer 來執行安裝及管理依賴。如果還沒有安裝它的話,請先從安裝 Composer 開始吧。

安裝Composer之后,您可以通過終端執行下列命令來安裝 Laravel:

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

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

2、創建 Blog 程序

Artisan 是 Laravel 內建的命令行工具,它提供了一些有用的命令協助您開發,它是由強大的 Symfony Console 組件所驅動。

l 打開終端,進入有寫權限的文件夾,生成一個新程序:

$ laravel new blog

或者

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

這個命令會在文件夾 blog 中新建一個 Laravel 程序。

執行 laravel new -h 可以查看新程序生成器的所有命令行選項。

l 生成 blog 程序后,進入該文件夾:

$ cd blog

blog 文件夾中有很多自動生成的文件和文件夾,組成一個 Laravel 程序。

二、Hello, Laravel!

首先,我們來添加一些文字,在頁面中顯示。為了能訪問網頁,要啟動程序服務器。

$ php artisan serve

上述命令會啟動 PHP 內建的開發服務器,要查看程序,請打開一個瀏覽器窗口,訪問http://localhost:8000 。應該會看到默認的 Laravel 信息頁面:

要想停止服務器,請在命令行中按 Ctrl+C 鍵。服務器成功停止后回重新看到命令行提示符。在大多數類 Unix 系統中,包括 Mac OS X,命令行提示符是 $ 符號。

1、顯示“Hello, Laravel!”

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

l 創建控制器

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

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

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

l 創建視圖:

在 app/views/ 目錄新建文件夾 welcome 并創建文件 index.blade.php ;

在 index.blade.php 文件中添加

Hello, Laravel!

;

2、設置程序的首頁

我們已經創建了控制器和視圖,現在要告訴 Laravel 在哪個地址上顯示“Hello, Laravel!”。這里,我們希望訪問根地址 http://localhost:8000 時顯示。但是現在顯示的還是歡迎頁面。

我們要告訴 Laravel 真正的首頁是什么。

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

我們找到 :

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

{

return View::make("hello");

});

修改為:

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

告知 Laravel,訪問程序的根路徑時,交給 welcome 控制器中的 index 動作處理。

三、開始使用

前文已經介紹如何創建控制器、動作和視圖,下面我們來創建一些更實質的功能。

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

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

· app/config/database.php 文件中的 default 選項設置為 sqlite (注:我們之前選擇 sqlite 作為默認數據庫);

在博客程序中,我們要創建一些對象資源,比如文章,人和動物,可以被創建、讀取、更新和刪除,這些操作簡稱 CRUD。

Laravel 提供了資源控制器可以簡單的建立跟資源相關的 RESTful 控制器。
創建文章資源后,app/routes.php 文件的內容新增如下:

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

執行 $ php artisan routes 任務,會看到定義了所有標準的 REST 動作。輸出結果中各列的意義稍后會說明。

下一節,我們會加入新建文章和查看文章的功能。這兩個操作分別對應于 CRUD 的 C 和 R,即創建和讀取。

1、挖地基

首先,程序中要有個頁面用來新建文章。一個比較好的選擇是 /articles/create。這個路由前面已經定義了,可以訪問。打開 http://localhost:8000/article... ,會看到如下的路由錯誤:

產生這個錯誤的原因是,沒有定義用來處理該請求的控制器。解決這個問題的方法很簡單:創建名為 ArticlesController 的控制器。執行下面的命令即可:

$ php artisan controller:make ArticlesController

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

修改 ArticlesController.php 文件中的

public function create()    

{

    //

}

public function create()

{

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

}

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

現在刷新 http://localhost:8000/article... ,會看到一個新錯誤:

產生這個錯誤的原因是,Laravel 希望這樣的常規動作有對應的視圖,用來顯示內容。沒有視圖可用,Laravel 就報錯了。

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

New Article

再次刷新 http://localhost:8000/article... , 可以看到頁面中顯示了一個標頭。現在路由、控制器、動作和視圖都能正常運行了。接下來要編寫新建文章的表單了。

2、首個表單

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

現在刷新頁面,會看到上述代碼生成的表單。在 Laravel 中編寫表單就是這么簡單!

在 Form 方法的塊中,Form::text 創建了兩個標簽和兩個文本字段,一個用于文章標題,一個用于文章內容。最后,Form::submit 創建一個提交按鈕。

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

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

這里,我們把 url 參數的值設為 articles 。對應的地址是 /articels,默認情況下,這個表單會向這個路由發起 POST 請求。這個路由對應于 ArticlesController 控制器的 store 動作。

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

3、創建文章

提交表單,會看到一個白屏。現在暫且不管這個錯誤。store 動作的作用是把新文章保存到數據庫中。

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

public function store()

{

    dd(Input::all());

}

dd 函數為 Laravel 內置的打印輸出函數,Input::all() 取得所有發出請求時傳入的輸入數據。

如果現在再次提交表單,不會再看到白屏錯誤,而是會看到類似下面的文字:

store 動作把表單提交的參數顯示出來了。不過這么做沒什么用,看到了參數又怎樣,什么都沒發生。

4、創建 Article 模型

在 Laravel 中,模型的名字使用單數,對應的數據表名使用復數。

創建 app/models/Article.php 并寫入以下代碼:

注意我們并沒有告訴 Eloquent Article 模型會使用哪個數據庫表。若沒有特別指定,系統會默認自動對應名稱為「類名稱的小寫復數形態」的數據庫表。所以,在上面的例子中, Eloquent 會假設 Article 將把數據存在 articles 數據庫表。

5、運行遷移

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

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

遷移文件會建立在 app/database/migrations 目錄下,文件名會包含時間戳,用于在執行遷移時用來決定順序。

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

修改其中的創建代碼為:

在這個遷移中定義了一個名為 up 的方法,在運行遷移時執行。up 方法中定義的操作都是可以通過 down 方法實現可逆的,Laravel 知道如何撤銷這次遷移操作。運行遷移后,會創建 articles 表,以及一個字符串字段和文本字段。同時還會創建兩個時間戳字段,用來跟蹤記錄的創建時間和更新時間。

然后,使用 Artisan 命令運行遷移:

$ php artisan migrate

Laravel 會執行遷移操作,告訴你創建了 articles 表。

Migration table created successfully. Migrated: 20140903084339createarticlestable

6、在控制器中保存數據

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

同時在 app/models/Article.php 添加 :

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

fillable 屬性允許在動作中調用模型的 create 方法使用 title 和 text 屬性。

再次訪問 http://localhost:8000/article... ,填寫表單,還差一步就能創建文章了。

7、顯示文章

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

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

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

8、列出所有文章

我們還要列出所有文章,對應的路由是:

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

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

然后編寫這個動作的視圖,保存為 app/views/articles/index.blade.php:

現在訪問 http://localhost:8000/articles ,會看到已經發布的文章列表。

9、添加鏈接

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

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

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

linktoroute 是 Laravel 內置的視圖幫助方法之一,根據提供的文本和地址創建超鏈接。這上面這段代碼中,地址是文章列表頁面。

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

標簽之前:

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

點擊這個鏈接后,會轉向新建文章的表單頁面。

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

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

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

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

10、添加數據驗證

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

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

再次訪問 http://localhost:8000/article... ,嘗試發布一篇沒有標題的文章,會看到一個很有用的錯誤提示。

11、更新文章

我們已經說明了 CRUD 中的 CR 兩種操作。下面進入 U 部分,更新文章。

首先,要在 ArticlesController 中更改 edit 動作:

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

這里的表單指向 update 動作

method: put ( patch ) 選項告訴 Laravel,提交這個表單時使用 PUT 方法發送請求。根據 REST 架構,更新資源時要使用 HTTP PUT 方法。

然后,要在 app/controllers/ArticlesController.php 中更新 update 動作:

最后,我們想在文章列表頁面,在每篇文章后面都加上一個鏈接,指向 edit 動作。打開 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、使用局部視圖去掉視圖中的重復代碼

下面使用局部視圖去掉兩個視圖中的重復代碼。

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

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

@include("notifications")

13、刪除文章

現在介紹 CRUD 中的 D,從數據庫中刪除文章。按照 REST 架構的約定,刪除文章的路由是:

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

刪除資源時使用 DELETE 請求。如果還使用 GET 請求,可以構建如下所示的惡意地址:

look at this cat!

刪除資源使用 DELETE 方法,路由會把請求發往 app/controllers/ArticlesController.php 中的 destroy 動作。修改 destroy 動作:

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

恭喜,現在你可以新建、顯示、列出、更新、刪除文章了,完成了Laravel的第一次實踐,祝您早日適應ThinkSNS+的技術框架,更多內容,請訪問www.thinksns.com

文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。

轉載請注明本文地址:http://specialneedsforspecialkids.com/yun/25760.html

相關文章

  • ThinkSNS Plus PHP開發概述

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

    Taste 評論0 收藏0
  • 如何在 Laravel 中 “規范” 的開發驗證碼發送功能【社交系統ThinkSNS研發日記十一】

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

    Flands 評論0 收藏0

發表評論

0條評論

glumes

|高級講師

TA的文章

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

      <