Laravel 对主流数据库系统链接和查询都提供了很好的支持,尤为是流畅的查询语句构造器。php
Laravel 支持四种类型的数据库:
- MySQL
- Postgres
- SQLite
- SQL Server
本系列教程选用了 mysql
Laravel 应用程序的数据库配置文件放置在 config/database.php 文件中。css
在这个配置文件内你能够定义全部的数据库链接,以及指定默认使用哪一个链接。在此文件内提供了全部支持的数据库系统示例。mysql
默认状况下,Laravel 的 环境配置 示例会使用 Laravel Homestead。laravel
对于 Laravel 开发来讲这是一个至关便利的本地虚拟机。固然你也能够根据需求来随时修改本机端的数据库设置。web
2、数据库配置sql
若是你使用 homestead ,数据库应该在第二个实验就配置好了(本地搭建开发环境的状况),若是你使用实验楼的在线环境,还须要手动配置一下数据库。数据库
首先,启动 mysql 数据库,打开命令行,输入如下指令:bash
sudo service mysql start
而后登录 mysql,用户名 root 密码为空。markdown
mysql -u root -p
登录后会进入 mysql 的命令行,以下:
框架
在mysql的命令行中完成后续操做。
建立一个数据库,命名为myweb:
create database myweb;
使用以下命令能够查看当前已经存在的数据库:
show databases;
效果图以下:
此处输入图片的描述
而后按 ctrl+c 退出 mysql 命令行。
打开咱们的工程代码,找到根目录下的 .env 文件。
增长代码以下:
.env
DB_HOST=localhost
DB_DATABASE=myweb
DB_USERNAME=root
DB_PASSWORD=
增长后:
到此,数据库环境配置完成!
3、数据库迁移
若是你使用过 Git 的话,你必定对代码的版本控制很是熟悉。
Laravel 中的数据库迁移就像是数据库的版本控制系统,他可让你的团队轻松修改并共享应用程序的数据库结构,迁移一般会搭配上 Laravel 的数据库结构构造器来让你方便地构建数据库结构。
迁移文件存放在 database/migrations 文件夹内,Laravel 默认写好了两个迁移文件,咱们能够看一下这两个文件。
看名字就能够知道,这两个迁移文件一个建立了一张 users 数据表,一个建立了一张 password_resets 数据表。
打开 2014_10_12_000000_create_users_table.php (前边的数字表明了建立时间):
database/migrations/XXX_create_users_table.php
<?php
use Illuminate\Database\Schema\Blueprint;
use Illuminate\Database\Migrations\Migration;
class CreateUsersTable extends Migration {
/** * Run the migrations. * * @return void */
public function up() {
Schema::create('users', function (Blueprint $table) {
$table->increments('id');
$table->string('name');
$table->string('email')->unique();
$table->string('password', 60);
$table->rememberToken();
$table->timestamps();
});
}
/** * Reverse the migrations. * * @return void */
public function down() {
Schema::drop('users');
}
}
一个迁移类会包含两个方法:up() 和 down() :
up() 方法可为数据库添加新的数据表、字段或索引
down() 方法则是 up 方法的逆操做。
你能够在这两个方法中使用 Laravel 数据库结构构造器来建立以及修改数据表。
好比上面建立 users 的代码:
Schema::create('users', function (Blueprint $table) {
$table->increments('id'); //建立递增字段‘id’
$table->string('name'); //建立字符串字段‘name’
$table->string('email')->unique(); //建立惟一字符串字段‘email’
$table->string('password', 60); //建立字符串字段‘password’ 最大字符数60
$table->rememberToken(); //建立记住密码字段
$table->timestamps(); //建立时间戳
});
关于数据库结构构造器,可查阅官方文档。
4、运行迁移
一旦你写好了迁移文件,就能够经过一行命令来运行迁移。
首先进入项目位置:
cd ~/Code/myweb
运行迁移:
php artisan migrate
能够看到输出了执行信息:
而后进入 mysql 查看一下数据库:(我是直接mysql语句进的)
mysql -u root -p
进入 myweb 数据库:(我试验的时候是建立在了homestead里面了,多是我以前的配置缘由,由于以前的homestead.yaml里面配置了,应该是吧!!!)
use myweb;
查看全部的数据表:
show tables;
能够看到 users 数据表已经被建立了。
查看 users 表结构:
desc users;
能够看到 users 这张表的结构也已经严格按照咱们的迁移文件设置好了,按 ctrl+c 退出 mysql 命令行。
就像 Git 的回滚代码同样,Laravel 的数据迁移也能够回滚。
进入项目代码,执行回滚:
cd ~/Code/myweb
php artisan migrate:rollback
提示回滚成功,因此如今 users 和 password_resets 表应该已经被删除了,咱们进入 mysql 查看一下:
mysql -u root -p
use myweb;
show tables;
能够看到,数据表被成功删除,按 ctrl+c 退出 mysql 命令行。
以 Laravel 默认为咱们写好的迁移文件为例,咱们也能够生成迁移。
在代码目录下使用 artisan 生成迁移:
php artisan make:migration create_articles_table
能够看到 database/migrations 目录下生成了对应的迁移文件:
修改后执行迁移就能够对数据库进行想要的操做了。
对laravel的数据库的一些简单操做进行了了解,不难,无非就是框架里写好的一些数据库的基本操做,以前有点数据库的基础知识理解起来不难,不过这里个人数据库不能经过语句mysql -u root -p只能经过mysql直接进是什么鬼,呃呃呃
参考:实验楼