文章目录
前言
数据库的创建与配置
使用DB类操作数据库
使用DB类进行增删改查
执行SQL
连接查询
使用模型操作数据库
初识模型
定义模型
在控制器中使用模型
使用模型增删改查
关联模型的使用
一对一
一对多
多对一
多对多
数据表的迁移和填充
数据表的迁移
数据表的填充
总结
前言
这是作者本人在校内学习了laravel框架项目的开发,取出了其中比较重要的数据库操作的学习心得,希望这些知识点能让各位读者在使用laravel框架的过程中能够熟练运用并操作数据库。数据库是程序设计的重要部分,不同数据库的连接方法和查询语句都不同,如果项目后期有更换数据库的需求,就需要在项目中修改所有的查询语句和连接方法,这是一个相当大的工作量。Laravel框架采用统一的接口实现对不同数据库操作的封装,使得对数据库的连接和操作变得非常容易。
数据库的创建与配置
数据库的配置文件是config\database.php,数据库配置相关示例代码。
'mysql' => [
'driver' => 'mysql', // 数据库驱动
'host' => env('DB_HOST', '127.0.0.1'), // 主机名或IP
'port' => env('DB_PORT', '3306'), // 端口
'database' => env('DB_DATABASE', 'forge'), // 数据库名
'username' => env('DB_USERNAME', 'forge'), // 用户名
'password' => env('DB_PASSWORD', ''), // 密码
'unix_socket' => env('DB_SOCKET', ''), // socket路径
'charset' => 'utf8mb4', // 字符集
'collation' => 'utf8mb4_unicode_ci', // 校对集
'prefix' => '', // 数据库表前缀
'strict' => true, // 使用严格模式
'engine' => null, // 指定存储引擎
],
.env文件中的数据库配置信息。
DB_CONNECTION=mysql
DB_HOST=127.0.0.1
DB_PORT=3306
DB_DATABASE=laravel
DB_USERNAME=root
DB_PASSWORD=123456
使用DB类操作数据库
使用DB类前必须在控制器引用DB类
<?php
namespace App\Http\Controllers;
use DB; // 引入DB类
……(原有代码)
使用DB类进行增删改查
//添加数据的 insert() insertGetId()
//insert()方法:返回值为true或false,表示是否添加成功
//insertGetId()方法:返回值为自动增长的id
DB::table('数据表名')->insert(数据)
DB::table('数据表名')->insertGetId(数据)
//修改数据的 update() increment() decrement()
//update()方法用来修改指定的字段
//increment()方法用来对数字进行递增
//decrement()方法用来对数字进行递减
DB::table('数据表名')->update(数据)
DB::table('数据表名')->increment('数据')
DB::table('数据表名')->decrement('数据')
//查询数据 get() first() select()方法 value()方法
//get()方法,查询多行数据
//first(),查询单行数据
//select(),方法查询指定字段的值
//value()方法,查询某个字段的值
//使用orderBy()方法进行排序,第1个参数指定排序字段,第2个参数指定排序规则,包括asc(升序)或desc//(降序)。
//使用limit()方法和offset()方法实现分页,limit()方法指定每页显示的记录数,offset()方法设置开始的偏移量。
DB::table('数据表名')->get();
DB::table('数据表名')->first();
DB::table('数据表名')->select('字段', '字段')->get();
DB::table('数据表名')->where('字段', '1')->value('name');
$data = DB::table('数据表名')->orderBy('字段', 'desc')->get();
$data = DB::table('数据表名')->limit(3)->offset(2)->get();
//删除数据 delete()方法 truncate()
//使用delete()方法删除指定的记录
//使用truncate()方法清空整个数据表
DB::table('数据表名')->where('字段', '1')->delete();
DB::table('数据表名')->truncate();
执行SQL
通过DB类直接执行SQL