摘要:原文發表在我的個人網站系列入門教程一最適合中國人的教程本教程示例代碼見大家在任何地方卡住,最快捷的解決方式就是去看我的示例代碼。在此我推薦一個全量中國鏡像。
原文發表在我的個人網站:Laravel 5 系列入門教程(一)【最適合中國人的 Laravel 教程】
本教程示例代碼見:https://github.com/johnlui/Learn-Laravel-5大家在任何地方卡住,最快捷的解決方式就是去看我的示例代碼。
Laravel 5 中文文檔:
http://laravel-china.org/docs/5.0
http://www.golaravel.com/laravel/docs/5.0/
本文默認你已經有配置完善的 PHP + MySQL 運行環境,懂得 PHP 網站運行的基礎知識。跟隨本教程走完一遍,你將會得到一個基礎的包含登錄的簡單 blog 系統,并將學會如何使用一些強大的 Laravel 插件和 composer 包(Laravel 插件也是 composer 包)。
軟件版本:PHP 5.4+,MySQL 5.1+
本文不推薦完全不懂 PHP 與 MVC 編程的人學習。本文不是 “一步一步跟我做” 教程。本文需要你付出一定的心智去解決一些或大或小的隱藏任務,以達到真正理解 Laravel 運行邏輯的目的。
1. 安裝許多人被攔在了學習Laravel的第一步,安裝。并不是因為安裝教程有多復雜,而是因為【眾所周知的原因】。在此我推薦一個composer全量中國鏡像:http://pkg.phpcomposer.com/ 。推薦以 “修改 composer 的配置文件” 方式配置。
鏡像配置完成后,切換到你想要放置該網站的目錄下(如 C:wwwroot、/Library/WebServer/Documents/、/var/www/html、/etc/nginx/html 等),運行命令:
bashcomposer create-project laravel/laravel learnlaravel5
然后,稍等片刻,當前目錄下就會出現一個叫 learnlaravel5 的文件夾。
然后將網站根目錄配置為 learnlaravel5/public。
使用瀏覽器訪問你配置的地址,將看到以下畫面(我在本地配置的地址為 http://fuck.io:88 ):
2. 體驗 Auth 系統并完成安裝—— 經過上面的過程,Laravel 5 的安裝成功了?
—— 沒有o(╯□╰)o
查看路由文件 learnlaravel5/app/Http/routes.php 的代碼:
phpRoute::get("/", "WelcomeController@index"); Route::get("home", "HomeController@index"); Route::controllers([ "auth" => "AuthAuthController", "password" => "AuthPasswordController", ]);
跟隨代碼里的蛛絲馬跡,讓我們訪問 http://fuck.io:88/home (請自行替換域名),結果竟然跳轉到了登陸頁?
沒錯,Laravel 自帶了開箱即用的 Auth 系統,連頁面都已經寫好了。
讓我們隨意輸入郵箱和密碼,點擊登錄,你很可能得到以下畫面(Mac 或 Linux 下):
為什么空白?用開發者工具查看,這個請求的狀態碼是 500,為什么?
因為 learnlaravel5/storage 目錄沒有 777 權限。
執行 shell 命令:
bashcd learnlaravel5 sudo chmod -R 777 storage
重新訪問 http://fuck.io:88/home ,隨意輸入郵箱和密碼,如果你得到以下畫面:
那么恭喜你~ Laravel 5 安裝成功!
不想配置鏡像的同學,可以使用 Laravel 界非常著名的 安正超 搞得安裝神器:https://github.com/overtrue/latest-laravel
3. 數據庫建立及遷移Laravel 5 把數據庫配置的地方改到了 learnlaravel5/.env,打開這個文件,編輯下面四項,修改為正確的信息:
rubyDB_HOST=localhost DB_DATABASE=laravel5 DB_USERNAME=root DB_PASSWORD=password
推薦新建一個名為 laravel5 的數據庫,為了學習方便,推薦使用 root 賬戶直接操作。
Laravel 已經為我們準備好了 Auth 部分的 migration,運行以下命令執行數據庫遷移操作:
bashphp artisan migrate
得到的結果如下:
如果你運行命令報錯,請檢查數據庫連接設置。
至此,數據庫遷移已完成,你可以打開 http://fuck.io:88/home 歡快地嘗試注冊、登錄啦。
4. 模型 Models接下來我們將接觸Laravel最為強大的部分,Eloquent ORM,真正提高生產力的地方,借用庫克的一句話:鵝妹子英!
運行一下命令:
bashphp artisan make:model Article php artisan make:model Page
Laravel 4 時代,我們使用 Generator 插件來新建 Model。現在,Laravel 5 已經把 Generator 集成進了 Artisan。
現在,Artisan 幫我們在 learnlaravel5/app/ 下創建了兩個文件 Article.php 和 Page.php,這是兩個 Model 類,他們都繼承了 Laravel Eloquent 提供的 Model 類 IlluminateDatabaseEloquentModel,且都在 App 命名空間下。這里需要強調一下,用命令行的方式創建文件,和自己手動創建文件沒有任何區別,你也可以嘗試自己創建這兩個 Model 類。
Model 即為 MVC 中的 M,翻譯為 模型,負責跟數據庫交互。在 Eloquent 中,數據庫中每一張表對應著一個 Model 類(當然也可以對應多個)。
如果你從其他框架轉過來,可能對這里一筆帶過的 Model 部分很不適應,沒辦法,是因為 Eloquent 實在太強大了啦,真的沒什么好做的,繼承一下 Eloquent 類就能實現很多很多功能了。
如果你想深入地了解 Eloquent,可以閱讀系列文章:深入理解 Laravel Eloquent(一)——基本概念及用法
接下來進行 Article 和 Page 類對應的 articles 表和 pages表的數據庫遷移,進入 learnlaravel5/databases/migrations 文件夾。
在 ***_create_articles_table.php 中修改:
phpSchema::create("articles", function(Blueprint $table) { $table->increments("id"); $table->string("title"); $table->string("slug")->nullable(); $table->text("body")->nullable(); $table->string("image")->nullable(); $table->integer("user_id"); $table->timestamps(); });
在 ***_create_pages_table.php 中修改:
phpSchema::create("pages", function(Blueprint $table) { $table->increments("id"); $table->string("title"); $table->string("slug")->nullable(); $table->text("body")->nullable(); $table->integer("user_id"); $table->timestamps(); });
然后執行命令:
bashphp artisan migrate
成功以后, tables 表和 pages 表已經出現在了數據庫里,去看看吧~
5. 數據庫填充 Seeder在 learnlaravel5/databases/seeds/ 下新建 PageTableSeeder.php 文件,內容如下:
phpdelete(); for ($i=0; $i < 10; $i++) { Page::create([ "title" => "Title ".$i, "slug" => "first-page", "body" => "Body ".$i, "user_id" => 1, ]); } } }
然后修改同一級目錄下的 DatabaseSeeder.php中:
php// $this->call("UserTableSeeder");
這一句為
php$this->call("PageTableSeeder");
然后運行命令進行數據填充:
bashcomposer dump-autoload php artisan db:seed
去看看 pages 表,是不是多了十行數據?
教程(一)代碼快照:https://github.com/johnlui/Learn-Laravel-5/archive/tutorial_1.zip
下一步:Laravel 5 系列入門教程(二)【最適合中國人的 Laravel 教程】
文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。
轉載請注明本文地址:http://specialneedsforspecialkids.com/yun/30211.html
摘要:原文發表在我的個人網站系列入門教程三最適合中國人的教程本教程示例代碼見大家在任何地方卡住,最快捷的解決方式就是去看我的示例代碼。教程三代碼快照下一步系列入門教程四最適合中國人的教程完結 原文發表在我的個人網站:Laravel 5 系列入門教程(三)【最適合中國人的 Laravel 教程】 本教程示例代碼見:https://github.com/johnlui/Learn-L...
摘要:原文發表在我的個人網站系列入門教程二最適合中國人的教程本教程示例代碼見大家在任何地方卡住,最快捷的解決方式就是去看我的示例代碼。 原文發表在我的個人網站:Laravel 5 系列入門教程(二)【最適合中國人的 Laravel 教程】 本教程示例代碼見:https://github.com/johnlui/Learn-Laravel-5 大家在任何地方卡住,最快捷...
摘要:原文發表在我的個人網站系列入門教程四最適合中國人的教程本教程示例代碼見大家在任何地方卡住,最快捷的解決方式就是去看我的示例代碼。 原文發表在我的個人網站:Laravel 5 系列入門教程(四)【最適合中國人的 Laravel 教程】 本教程示例代碼見:https://github.com/johnlui/Learn-Laravel-5 大家在任何地方卡住,最快捷...
摘要:完結教程一教程二教程三原文是富文本編輯器寫的,向不好轉換,大家點過去看吧。。。 【完結】 教程(一):http://lvwenhan.com/laravel/398.html 教程(二): http://lvwenhan.com/laravel/399.html 教程(三): http://lvwenhan.com/laravel/400.html 原文是富文本編輯器寫的...
閱讀 984·2021-11-23 09:51
閱讀 3470·2021-11-22 12:04
閱讀 2716·2021-11-11 16:55
閱讀 2921·2019-08-30 15:55
閱讀 3222·2019-08-29 14:22
閱讀 3351·2019-08-28 18:06
閱讀 1240·2019-08-26 18:36
閱讀 2126·2019-08-26 12:08