本文爲CSDN Choris 原創,轉載請事先徵得做者贊成,以示尊重!php
原文:http://blog.csdn.net/choris/article/details/50215835css
本文在參考歲寒博客Laravel 5 系列入門教程(一)【最適合中國人的 Laravel 教程】的基礎上寫成1。html
Laravel是一個PHP開發框架,用Laravel框架開發的網站須要運行於有PHP+數據庫+web服務器的操做系統上。通常要求PHP版本5.4+,MySQL5.1+。本文選擇PHP+MySQL數據庫+Apache web服務器。在Windows下能夠下載並安裝最新版XAMPP集成開發環境,點擊到XAMPP官網下載。mysql
Laravel須要使用Composer來管理其依賴性。因此,在使用Laravel以前,必須確認在電腦上已經安裝了Composer。
Windows下安裝Composer很是簡單,能夠像安裝XAMPP同樣,下載並安裝Composer-Setup.exe安裝程序便可。點擊到Composer中文網下載2。
安裝完成後輸入如下指令檢測是否安裝成功:linux
composer -V
因爲訪問國外網站或者被牆的緣由,若是直接使用默認Composer源速度會很是慢並且極可能不能訪問。幸運的是,國內的IT工做者製做了Packagist/Composer的中國全量鏡像。能夠參考Composer中文網的教程配置3,本文下面也會詳述配置步驟。laravel
有兩種方法啓用本鏡像服務:
- 將配置信息添加到 Composer 的配置文件
config.json
中(系統全局配置)- 將配置信息添加到單個項目的
composer.json
文件中(單個項目配置)
本文選擇第一種配置方法:
打開命令行窗口(windows用戶)或控制檯(Linux、Mac用戶)並執行以下命令:c++
composer config -g repositories.packagist composer http://packagist.phpcomposer.com
說明
使用本鏡像服務就意味着下載的全部的安裝包元數據都未來自本鏡像服務,而再也不向 packagist.org 發起請求。這將加速
Composer 的安裝過程,而且更加可靠、快速。(因爲衆所周知的緣由,國外的網站鏈接速度太慢,而且隨時可能被牆)git通常狀況下,安裝包的數據(zip 文件等)通常是從 GitHub
或其餘第三方服務器上下載的,使用本鏡像服務後,咱們會緩存全部安裝包到國內的機房,這樣就沒必要再去向國外的網站發起請求,所以,即便
packagist.org、github.com 或其餘第三方服務發生故障(主要是鏈接速度太慢和被牆),你仍然能夠下載、更新安裝包。github
鏡像配置完成後,切換到你想要安裝的目錄下,xampp下Apache的安裝路徑爲:web
C:\xampp\htdocs
切換到該目錄下,運行命令提示符cmd,輸入以下命令:
composer create-project laravel/laravel learnlaravel5
composer update --no-scripts (安裝依賴項)
有時候composer install/update的時候會報錯:
[Composer\Downloader\TransportException]
Your configuration does not allow connection to http://ooxx/xxoo.Git. See https://getcomposer.org/doc/06-config.md#secure-http for details.
解決方法是設置一個本地或全局的composer配置:
composer config secure-http false
全局設置:
composer config -g secure-http false
意義是默認禁用https請求,就能夠了
安裝完成後在當前目錄下會生成一個目錄learnlaravel5,以下圖所示:
打開xampp並開啓Apache服務器,在瀏覽器中輸入Laravel主目錄:
「ip:端口/laravel安裝目錄 / public」 (默認80端口可省略) 在個人本機上爲: localhost/learnlaravel5/public
能夠看到Laravel安裝成功地界面:
Laravel 出現"RuntimeException
首先在cmd命令行下定位到項目所在的根目錄下,接着輸入:
- php artisan key:generate
效果:
這時候項目根目錄下的.env文件裏的APP_KEY應該會有值了:
若沒有,則將上一步生成的key值輸入進去便可。
Laravel Migration Error : Syntax error or access violation: 1071 Specified key was too long; max key length is 767 bytes laravel 5.3
Refering to Laravel News and Laravel's migration guide:
As outlined in the Migrations guide to fix this all you have to do is edit your AppServiceProvider.php file and inside the boot method set a default string length:
use Illuminate\Support\Facades\Schema; function boot() { Schema::defaultStringLength(191); }
以上四步是安裝Laravel的主要步驟,後續主要講解如何使用和開發
Laravel 5 把數據庫配置的地方改到了 learnlaravel5/.env
,打開這個文件,編輯下面四項,修改成正確的信息:
DB_HOST=localhost DB_DATABASE=laravel5 DB_USERNAME=root DB_PASSWORD=password
推薦新建一個名爲 laravel5 的數據庫,爲了學習方便,推薦使用 root 帳戶直接操做。
Laravel 已經爲咱們準備好了 Auth 部分的 migration,運行如下命令執行數據庫遷移操做:
php artisan migrate
獲得以下結果:
若是你運行命令報錯,請檢查數據庫鏈接設置。至此,數據庫遷移已完成,你能夠打開localhost/learnlaravel5/public/home
進行註冊和登錄啦。
接下來咱們將接觸Laravel最爲強大的部分,Eloquent ORM,運行如下命令:
php 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 類 Illuminate\Database\Eloquent\Model
,且都在 \App
命名空間下。這裏須要強調一下,用命令行的方式建立文件,和本身手動建立文件沒有任何區別,你也能夠嘗試本身建立這兩個 Model 類。
Model 即爲 MVC 中的 M,翻譯爲模型,負責跟數據庫交互。在 Eloquent 中,數據庫中每一張表對應着一個 Model 類(固然也能夠對應多個)。
若是你想深刻地瞭解 Eloquent,能夠閱讀系列文章:深刻理解 Laravel Eloquent(一)——基本概念及用法
接下來進行 Article 和 Page 類對應的 articles 表和 pages表的數據庫遷移,進入 learnlaravel5/database/migrations
文件夾。
在 ***_create_articles_table.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(); });
在 ***_create_pages_table.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 artisan migrate
成功之後, articles 表和 pages 表已經出如今了數據庫裏。
在 learnlaravel5/database/seeds/
下新建 PageTableSeeder.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, ]); } } }
而後修改同一級目錄下的 DatabaseSeeder.php
中:
// $this->call('UserTableSeeder');
這一句爲
$this->call('PageTableSeeder');
而後運行命令進行數據填充:
composer dump-autoload php artisan db:seed
查看pages表,裏面新增了10條數據。