PHP laravel系列之数据库
来源:互联网 发布:前端框架 知乎 编辑:程序博客网 时间:2024/06/17 04:16
一、数据库简介
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 的命令行,如下:
在mysql的命令行中完成后续操作。
创建一个数据库,命名为myweb:
create database myweb;
使用如下命令可以查看当前已经存在的数据库:
show databases;
效果图如下:
此处输入图片的描述
然后按 ctrl+c 退出 mysql 命令行。
打开我们的工程代码,找到根目录下的 .env 文件。
增加代码如下:
.env
DB_HOST=localhostDB_DATABASE=mywebDB_USERNAME=rootDB_PASSWORD=
增加后:
到此,数据库环境配置完成!
三、数据库迁移
如果你使用过 Git 的话,你一定对代码的版本控制非常熟悉。
Laravel 中的数据库迁移就像是数据库的版本控制系统,他可以让你的团队轻松修改并共享应用程序的数据库结构,迁移通常会搭配上 Laravel 的数据库结构构造器来让你方便地构建数据库结构。
迁移文件存放在 database/migrations 文件夹内,Laravel 默认写好了两个迁移文件,我们可以看一下这两个文件。
看名字就可以知道,这两个迁移文件一个创建了一张 users 数据表,一个创建了一张 password_resets 数据表。
打开 2014_10_12_000000_create_users_table.php (前边的数字代表了创建时间):
database/migrations/XXX_create_users_table.php
<?phpuse 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
可以看到输出了执行信息:
然后进入 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/mywebphp artisan migrate:rollback
提示回滚成功,所以现在 users 和 password_resets 表应该已经被删除了,我们进入 mysql 查看一下:
mysql -u root -puse myweb;show tables;
可以看到,数据表被成功删除,按 ctrl+c 退出 mysql 命令行。
六、生成迁移
以 Laravel 默认为我们写好的迁移文件为例,我们也可以生成迁移。
在代码目录下使用 artisan 生成迁移:
php artisan make:migration create_articles_table
可以看到 database/migrations 目录下生成了对应的迁移文件:
修改后执行迁移就可以对数据库进行想要的操作了。
七、小结
对laravel的数据库的一些简单操作进行了了解,不难,无非就是框架里写好的一些数据库的基本操作,之前有点数据库的基础知识理解起来不难,不过这里我的数据库不能通过语句mysql -u root -p只能通过mysql直接进是什么鬼,呃呃呃
参考:实验楼
- PHP laravel系列之数据库
- PHP laravel系列之中间件
- PHP laravel系列之视图
- PHP laravel系列之PHP Artisan Tinker
- laravel系列之生成_ide_helper.php文件
- PHP laravel系列之Blade模版
- PHP laravel系列之迷你博客搭建
- PHP laravel系列之bootstrap美化
- laravel 课程学习系列二----------------第二章.PHP框架安装之Laravel
- laravel 之 数据库
- PHP Laravel系列之环境搭建( VirtualBox+Vagrant+Homestead+系列网址)
- php Laravel 框架之分页
- PHP laravel之模型&Eloquent
- [李景山php]每天laravel[033]-laravel 基础知识 --- 数据库
- Laravel系列之新建laravel项目(二)
- PHP开发框架Laravel数据库操作方法总结
- php Laravel框架学习(一) 之 建立数据库并填充测试数据
- Web开发之PHP框架(二)-Laravel数据库初步及MVC
- Codeforces Round #430 (Div. 2) 总结
- 韩信点兵算法
- Python初学——窗口视窗Tkinter
- Ubuntu 中apt update和upgrade 的区别
- 似然函数
- PHP laravel系列之数据库
- mysql性能优化-慢查询分析、优化索引和配置
- 分布交互式CosiMate 8.1 2016.04多学科协同仿真计算平台
- 九大排序算法
- HDU-1005(基础题)
- HTML5中关于文件的上传
- Unity 工具-Opus音频压缩(安卓篇)
- VMware10.0.1下CentOS6.5的图文安装教程
- 哈工大LTP部署及测试Demo