larval php mysql_PHP laravel系列之数据库

一、数据库简介

Laravel 对主流数据库系统连接和查询都提供了很好的支持,尤其是流畅的查询语句构造器。

Laravel 支持四种类型的数据库:

- MySQL

- Postgres

- SQLite

- SQL Server

本系列教程选用了 mysql

Laravel 应用程序的数据库配置文件放置在 config/database.php 文件中。

在这个配置文件内你可以定义所有的数据库连接,以及指定默认使用哪个连接。在此文件内提供了所有支持的数据库系统示例。

默认情况下,Laravel 的 环境配置 示例会使用 Laravel Homestead。

对于 Laravel 开发来说这是一个相当便利的本地虚拟机。当然你也可以根据需求来随时修改本机端的数据库设置。

二、数据库配置

如果你使用 homestead ,数据库应该在第二个实验就配置好了(本地搭建开发环境的情况),如果你使用实验楼的在线环境,还需要手动配置一下数据库。

首先,启动 mysql 数据库,打开命令行,输入以下指令:

sudo service mysql start

然后登陆 mysql,用户名 root 密码为空。

mysql -u root -p

登陆后会进入 mysql 的命令行,如下:

4e42cba70cf9a8a16a065f8787f949f1.png

在mysql的命令行中完成后续操作。

创建一个数据库,命名为myweb:

create database myweb;

使用如下命令可以查看当前已经存在的数据库:

show databases;

效果图如下:

此处输入图片的描述

9566f81f26090524f7623edb8a5d114e.png

然后按 ctrl+c 退出 mysql 命令行。

打开我们的工程代码,找到根目录下的 .env 文件。

增加代码如下:

.env

DB_HOST=localhost

DB_DATABASE=myweb

DB_USERNAME=root

DB_PASSWORD=

增加后:

4e504e30b34f4ac40b673bc2c7a30789.png

到此,数据库环境配置完成!

三、数据库迁移

如果你使用过 Git 的话,你一定对代码的版本控制非常熟悉。

Laravel 中的数据库迁移就像是数据库的版本控制系统,他可以让你的团队轻松修改并共享应用程序的数据库结构,迁移通常会搭配上 Laravel 的数据库结构构造器来让你方便地构建数据库结构。

迁移文件存放在 database/migrations 文件夹内,Laravel 默认写好了两个迁移文件,我们可以看一下这两个文件。

看名字就可以知道,这两个迁移文件一个创建了一张 users 数据表,一个创建了一张 password_resets 数据表。

打开 2014_10_12_000000_create_users_table.php (前边的数字代表了创建时间):

database/migrations/XXX_create_users_table.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(); //创建时间戳

});

关于数据库结构构造器,可查阅官方文档。

四、运行迁移

一旦你写好了迁移文件,就可以通过一行命令来运行迁移。

首先进入项目位置:

cd ~/Code/myweb

运行迁移:

php artisan migrate

可以看到输出了执行信息:

735684c3e5abe0a08febaf3f89cf399f.png

然后进入 mysql 查看一下数据库:(我是直接mysql语句进的)

mysql -u root -p

进入 myweb 数据库:(我试验的时候是创建在了homestead里面了,可能是我之前的配置原因,因为之前的homestead.yaml里面配置了,应该是吧!!!)

use myweb;

查看所有的数据表:

show tables;

可以看到 users 数据表已经被创建了。

4ba6df188d4d53bae32b622841f9f9f5.png

查看 users 表结构:

desc users;

867ca466ae7d6625ba862ea78c04b84b.png

可以看到 users 这张表的结构也已经严格按照我们的迁移文件设置好了,按 ctrl+c 退出 mysql 命令行。

五、迁移回滚

就像 Git 的回滚代码一样,Laravel 的数据迁移也可以回滚。

进入项目代码,执行回滚:

cd ~/Code/myweb

php artisan migrate:rollback

2034d848b46ddff9a0c5459e72e88ba8.png

提示回滚成功,所以现在 users 和 password_resets 表应该已经被删除了,我们进入 mysql 查看一下:

mysql -u root -p

use myweb;

show tables;

815b12dd7cf4acaad74e8aa9d20d0925.png

可以看到,数据表被成功删除,按 ctrl+c 退出 mysql 命令行。

六、生成迁移

以 Laravel 默认为我们写好的迁移文件为例,我们也可以生成迁移。

在代码目录下使用 artisan 生成迁移:

php artisan make:migration create_articles_table

可以看到 database/migrations 目录下生成了对应的迁移文件:

修改后执行迁移就可以对数据库进行想要的操作了。

七、小结

对laravel的数据库的一些简单操作进行了了解,不难,无非就是框架里写好的一些数据库的基本操作,之前有点数据库的基础知识理解起来不难,不过这里我的数据库不能通过语句mysql -u root -p只能通过mysql直接进是什么鬼,呃呃呃

参考:实验楼

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值