在终端CMD里切换到你想要放置该网站的目录下(如 d:\project\laravel),运行命令php
composer create-project laravel/laravel learnlaravel5 ^5.5
而后,稍等片刻,当前目录下就会出现一个叫 learnlaravel5 的文件夹,安装完成啦~html
2、运行mysql
一、若是想要在wamp下运行,把laravel项目安装在wamp下的www目录下,例如个人wamp安装路径是D:\soft\wamp64,laravel
把laravel放在D:\soft\wamp64\www下,而后浏览器打开localhost,你会发现你的项目在1标示处,在2标示处添加一个新的虚拟机,配置laravelgit
入口路径,添加好后虚拟机会出如今3标示处github
点击laravel.test.com,便可运行laravelweb
若是你在本地安装了 PHP,而且想使用 PHP 内置的开发服务器来为你的应用程序提供服务,那就使用 Artisan 命令 serve
。这个命令会在 http://localhost:8000
上启动开发服务器:sql
切换到项目安装目录 d:/project/learnlaravel5,执行 php artisan serve
便可在浏览器输入http://127.0.0.1:8000/打开laravel了shell
3、体验 Auth 系统数据库
Laravel 利用 PHP5.4 的新特性 trait 内置了很是完善好用的简单用户登陆注册功能,适合一些不须要复杂用户权限管理的系统,例如公司内部用的简单管理系统。
激活这个功能很是容易,运行如下命令:
php artisan make:auth
访问 http://127.0.0.1:8000/login
,看到如下页面:
4、链接数据库
不出意外的话,learnlaravel5 目录下已经有了一个 .env 文件,若是没有,能够复制一份 .env.example 文件重命名成 .env,修改下面几行的值:
DB_HOST=127.0.0.1
DB_PORT=3306
DB_DATABASE=laravel5
DB_USERNAME=root
DB_PASSWORD=password
推荐新建一个名为 laravel5 的数据库(编码设置为 utf8mb4),而且使用 root 帐户直接操做,下降学习数据库的成本。
b. 进行数据库迁移(migration)
运行命令:
php artisan migrate
咱们获得了以下结果:
» php artisan migrate
Migration table created successfully.
Migrating: 2014_10_12_000000_create_users_table
Migrated: 2014_10_12_000000_create_users_table
Migrating: 2014_10_12_100000_create_password_resets_table
Migrated: 2014_10_12_100000_create_password_resets_table
数据库迁移成功!mysql里生成表以下
而后在http://127.0.0.1:8000/register里注册一个用户,zxm/123456,成功后显示
打开 learnlaravel5/database/migrations/2014_10_12_000000_create_users_table.php
文件,你确定能一眼看出它的做用:
用 PHP 描述数据库构造,而且使用命令行一次性部署全部数据库结构。
小提示:修改后env文件有时注册时会报
Access denied for user 'homestead'@'localhost'
错误,解决方法:
一、检查env文件是否更改正确
二、重启服务
五. 使用 Laravel 的ORM:Eloquent
Eloquent 是 Laravel 的 ORM,是 Laravel 系统中最强大的地方,没有之一。当初 Laravel 做者在开发初版的时候花了整整三分之一的时间才搞出来 Eloquent,Eloquent 也是 Laravel 中最慢的地方,迄今没法解决。(路由、自动载入、配置分散、视图引起的性能问题都经过缓存几乎完全解决了,Composer Autoload 巨量的性能消耗也被 PHP7 手起刀落解决了)
a. Eloquent 是什么
Eloquent 是 Laravel 内置的 ORM 系统,咱们的 Model 类将继承自 Eloquent 提供的 Model 类,而后,就天生具有了数十个异常强大的函数,今后想干啥事儿都是一行代码就搞定。
通过了三年多的大规模使用,我发现 Eloquent 另辟蹊径采用和 Java 技术彻底不一样的思路解决了多人开发耦合太重的问题:数据库相关操做所有用一句话解决,Model 中不写共用函数,大幅下降了 bug 概率。什么?你说性能?软件工程研究的对象是人,性能的优先级比代码格式规范都低好嘛。我时刻谨记:代码是写给人看的,只是刚好能运行。
咱们使用 Artisan 工具新建 Model 类及其附属的 Migration 和 Seeder(数据填充)类。
运行如下命令:
php artisan make:model Article
去看看你的 app 目录,下面是否是多了一个 Article.php 文件?那就是 Artisan 帮咱们生成的 Model 文件:
<?php namespace App; use Illuminate\Database\Eloquent\Model; class Article extends Model { // }
如此简洁有力的代码,隐藏了背后极高的难度和巨大的复杂度,让咱们闭上眼睛,静静地感觉 Laravel 的优雅吧 (~ ̄▽ ̄)~
六. 使用 Migration 和 Seeder
接下来咱们生成对应 Article 这个 Model 的 Migration 和 Seeder。
在 learnlaravel5 目录下运行命令:
php artisan make:migration create_articles_table
成功以后打开 learnlaravel5/database/migrations
,你会发现有一个名为 2*****_create_articles_table 的文件被建立了。咱们修改他的 up 函数为:
public function up() { Schema::create('articles', function (Blueprint $table) { $table->increments('id'); $table->string('title'); $table->text('body')->nullable(); $table->integer('user_id'); $table->timestamps(); }); }
这几行代码描述的是 Article 对应的数据库中那张表的结构。Laravel Model 默认的表名是这个英文单词的复数形式,在这里,就是 articles。接下来让咱们把 PHP 代码变成真实的 MySQL 中的数据表,运行命令:
php artisan migrate
执行成功后,articles 表已经出如今数据库里了:
Seeder 是咱们接触到的一个新概念,字面意思为播种机。Seeder 解决的是咱们在开发 web 应用的时候,须要手动向数据库中填入假数据的繁琐低效问题。
运行如下命令建立 Seeder 文件:
php artisan make:seeder ArticleSeeder
咱们会发现 learnlaravel5/database/seeds
里多了一个文件 ArticleSeeder.php
,修改此文件中的 run 函数为:
public function run() { DB::table('articles')->delete(); for ($i=0; $i < 10; $i++) { \App\Article::create([ 'title' => 'Title '.$i, 'body' => 'Body '.$i, 'user_id' => 1, ]); } }
上面代码中的 \App\Article
为命名空间绝对引用。若是你对命名空间还不熟悉,能够读一下 《PHP 命名空间 解惑》,很容易理解的。
接下来咱们把 ArticleSeeder 注册到系统内。修改 learnlaravel5/database/seeds/DatabaseSeeder.php
中的 run 函数为:
public function run() { $this->call(ArticleSeeder::class); }
因为 database 目录没有像 app 目录那样被 composer 注册为 psr-4 自动加载,采用的是 psr-0 classmap 方式,因此咱们还须要运行如下命令把 ArticleSeeder.php
加入自动加载系统,避免找不到类的错误:
composer dump-autoload
而后执行 seed:
php artisan db:seed
你应该获得以下结果:
这时候刷新一下数据库中的 articles 表,会发现已经被插入了 10 行假数据:
参考:https://github.com/johnlui/Learn-Laravel-5/issues/16