《PHP實例:Laravel 5 框架入門(一)》要點:
本文介紹了PHP實例:Laravel 5 框架入門(一),希望對您有用。如果有疑問,可以聯系我們。
PHP編程Laravel 5 中文文檔:
PHP編程1. http://laravel-china.org/docs/5.0
PHP編程2. http://www.golaravel.com/laravel/docs/5.0/
PHP編程默認條件
PHP編程本文默認你已經有配置完善的 PHP + MySQL 運行環境,懂得 PHP 網站運行的基礎知識.跟隨本教程走完一遍,你將會得到一個基礎的包含登錄的簡單 blog 系統,并將學會如何使用一些強大的 Laravel 插件和 composer 包(Laravel 插件也是 composer 包).
PHP編程軟件版本:PHP 5.4+,MySQL 5.1+
PHP編程本文不推薦完全不懂 PHP 與 MVC 編程的人學習.本文不是 “一步一步跟我做” 教程.本文需要你付出一定的心智去解決一些或大或小的暗藏任務,以達到真正理解 Laravel 運行邏輯的目的.
PHP編程1. 安裝
PHP編程許多人被攔在了學習Laravel的第一步,安裝.并不是因為安裝教程有多復雜,而是因為【眾所周知的原因】.在此我推薦一個composer全量中國鏡像:http://pkg.phpcomposer.com/ .推薦以 “修改 composer 的配置文件” 方式配置.
PHP編程鏡像配置完成后,切換到你想要放置該網站的目錄下(如 C:\\wwwroot、/Library/WebServer/Documents/、/var/www/html、/etc/nginx/html 等),運行命令:
PHP編程
composer create-project laravel/laravel learnlaravel5
PHP編程然后,稍等半晌,當前目錄下就會出現一個叫 learnlaravel5 的文件夾.
PHP編程然后將網站根目錄配置為 learnlaravel5/public.
PHP編程如果你不會配置,建議去學會配置,網上資料很多.如果自暴自棄,可以把 的第 29 行'url' => 'http://localhost', 配置成你的子目錄地址,注意,要一直配置到 ***/learnlaravel5/public.
PHP編程使用瀏覽器拜訪你配置的地址,將看到以下畫面(我在本地配置的地址為 http://fuck.io:88 ):
PHP編程框架入門(一)" src="">
PHP編程2. 體驗 Auth 系統并完成安裝
PHP編程―― 經過上面的過程,Laravel 5 的安裝成功了?
PHP編程―― 沒有o(s□t)o
PHP編程查看路由文件 `learnlaravel5/app/Http/routes.php` 的代碼:
PHP編程
Route::get('/', 'WelcomeController@index');
Route::get('home', 'HomeController@index');
Route::controllers([
'auth' => 'Auth\AuthController',
'password' => 'Auth\PasswordController',
]);
PHP編程跟隨代碼里的蛛絲馬跡,讓我們拜訪 http://fuck.io:88/home (請自行替換域名),結果竟然跳轉到了登陸頁?
PHP編程
PHP編程沒錯,Laravel 自帶了開箱即用的 Auth 系統,連頁面都已經寫好了.
PHP編程讓我們隨意輸入郵箱和暗碼,點擊登錄,你很可能得到以下畫面(Mac 或 Linux 下):
PHP編程
PHP編程為什么空白?用開發者工具查看,這個哀求的狀態碼是 500,為什么?
PHP編程因為 `learnlaravel5/storage` 目錄沒有 777 權限.
PHP編程執行 shell 命令:
PHP編程
cd learnlaravel5
sudo chmod -R 777 storage
PHP編程重新訪問 http://fuck.io:88/home ,隨意輸入郵箱和暗碼,如果你得到以下畫面:
PHP編程
PHP編程那么恭喜你~ Laravel 5 安裝成功!
PHP編程不想配置鏡像的同學,可以使用 Laravel 界非常著名的 安正超 搞的安裝神器:https://github.com/overtrue/latest-laravel
PHP編程3. 數據庫建立及遷移
PHP編程Laravel 5 把數據庫配置的地方改到了 `learnlaravel5/.env`,打開這個文件,編輯下面四項,修改為正確的信息:
PHP編程
DB_HOST=localhost
DB_DATABASE=laravel5
DB_USERNAME=root
DB_PASSWORD=password
PHP編程推薦新建一個名為 laravel5 的數據庫,為了學習方便,推薦使用 root 賬戶直接操作.
PHP編程Laravel 已經為我們準備好了 Auth 部分的 migration,運行以下命令執行數據庫遷移操作:
PHP編程
php artisan migrate
PHP編程得到的結果如下:
PHP編程
PHP編程如果你運行命令報錯,請檢查數據庫連接設置.
PHP編程至此,數據庫遷移已完成,你可以打開 http://fuck.io:88/home 歡快地嘗試注冊、登錄啦.
PHP編程4. 模型 Models
PHP編程接下來我們將接觸Laravel最為強大的部分,Eloquent ORM,真正提高生產力的地方,借用庫克的一句話:鵝妹子英!
PHP編程運行一下命令:
PHP編程
php artisan make:model Article
php artisan make:model Page
PHP編程> Laravel 4 時代,我們使用 Generator 插件來新建 Model.現在,Laravel 5 已經把 Generator 集成進了 Artisan.
PHP編程現在,Artisan 幫我們在 `learnlaravel5/app/` 下創建了兩個文件 `Article.php` 和 `Page.php`,這是兩個 Model 類,他們都繼承了 Laravel Eloquent 提供的 Model 類 `Illuminate\Database\Eloquent\Model`,且都在 `\App` 命名空間下.這里需要強調一下,用命令行的方式創建文件,和自己手動創建文件沒有任何區別,你也可以嘗試自己創建這兩個 Model 類.
PHP編程Model 即為 MVC 中的 M,翻譯為 模型,負責跟數據庫交互.在 Eloquent 中,數據庫中每一張表對應著一個 Model 類(當然也可以對應多個).
PHP編程如果你從其他框架轉過來,可能對這里一筆帶過的 Model 部分很不適應,沒方法,是因為 Eloquent 實在太強大了啦,真的沒什么好做的,繼承一下 Eloquent 類就能實現很多很多功能了.
PHP編程如果你想深入地了解 Eloquent,可以閱讀系列文章:Laravel 5框架學習之Eloquent 關系
PHP編程接下來進行 Article 和 Page 類對應的 articles 表和 pages表的數據庫遷移,進入 `learnlaravel5/database/migrations` 文件夾.
PHP編程在 ***_create_articles_table.php 中修改:
PHP編程
Schema::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();
});
PHP編程在 ***_create_pages_table.php 中修改:
PHP編程
Schema::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();
});
PHP編程然后執行命令:
PHP編程
php artisan migrate
PHP編程成功以后, tables 表和 pages 表已經出現在了數據庫里,去看看吧~
PHP編程5. 數據庫填充 Seeder
PHP編程在 `learnlaravel5/database/seeds/` 下新建 `PageTableSeeder.php` 文件,內容如下:
PHP編程
<?php
use Illuminate\Database\Seeder;
use App\Page;
class PageTableSeeder extends Seeder {
public function run()
{
DB::table('pages')->delete();
for ($i=0; $i < 10; $i++) {
Page::create([
'title' => 'Title '.$i,
'slug' => 'first-page',
'body' => 'Body '.$i,
'user_id' => 1,
]);
}
}
}
PHP編程然后修改同一級目錄下的 `DatabaseSeeder.php`中:
PHP編程
// $this->call('UserTableSeeder');
PHP編程這一句為
PHP編程
$this->call('PageTableSeeder');
PHP編程然后運行命令進行數據填充:
PHP編程
composer dump-autoloadphp artisan db:seed
PHP編程去看看 pages 表,是不是多了十行數據?
PHP編程本教程示例代碼見:https://github.com/johnlui/Learn-Laravel-5
PHP編程大家在任何地方卡住,最快捷的辦理方式就是去看我的示例代碼.
PHP編程以上所述就是本文的全部內容了,希望能夠對大家學習Laravel5框架有所贊助.
歡迎參與《PHP實例:Laravel 5 框架入門(一)》討論,分享您的想法,維易PHP學院為您提供專業教程。