Laravel 5.2 四、.env 文件与模型操作

一、.env文件

.env 文件是应用的环境配置文件,在配置应用参数、数据库连接、缓存处理时都会使用这个文件。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
// 应用相关参数
APP_ENV=local
APP_DEBUG=true   //应用调试模式
APP_KEY=base64:hMYz0BMJDJARKgrmaV93YQY/p9SatnV8m0kT4LVJR5w= //应用key
APP_URL=http://localhost
 
// 数据库连接参数
DB_CONNECTION=mysql
DB_HOST=127.0.0.1
DB_PORT=3306
DB_DATABASE=laravelblog
DB_USERNAME=root
DB_PASSWORD=
DB_PREFIX='hd_'
 
// 缓存相关参数
CACHE_DRIVER=file
SESSION_DRIVER=file
QUEUE_DRIVER=sync
 
// Redis 连接参数
REDIS_HOST=127.0.0.1
REDIS_PASSWORD=null
REDIS_PORT=6379
 
// 邮件相关参数
MAIL_DRIVER=smtp
MAIL_HOST=mailtrap.io
MAIL_PORT=2525
MAIL_USERNAME=null
MAIL_PASSWORD=null
MAIL_ENCRYPTION=null  

其中,有关这个 APP_KEY 的解释,在 config/app.php 中有如下注释:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
/*
|--------------------------------------------------------------------------
| Encryption Key
|--------------------------------------------------------------------------
|
| This key is used by the Illuminate encrypter service and should be set
| to a random, 32 character string, otherwise these encrypted strings
| will not be safe. Please do this before deploying an application!
|
*/
 
'key' => env('APP_KEY'),
 
'cipher' => 'AES-256-CBC',

key 键读取 .env 文件的 APP_KEY ,一般是 32 位的随机字符串。cipher 键决定 APP_KEY 的长度,一般是 AES-256-CBC (默认)表示 key 长 32 位字符,或者 AES-128-CBC 表示 16 位。

所以,为了保证会话和加密服务的安全, APP_KEY 必须设置,使用 Artisan 命令生成:

1
php artisan key:generate

这样,.env 文件中就会写入一个新的 APP_KEY 。

 

二、模型操作

Laravel 提供了 DB 类、查询构建器和 Elequent 模型这三个工具来实现数据库操作。

 

1. DB类

1
2
3
4
5
6
7
8
9
10
11
// 插入
DB::insert('insert into hd_user(username, password) values(?, ?)', ['admin', 123456]);
 
// 查询
DB::select('select * from hd_user where username = ?', ['admin']);
 
// 更新
DB::update('update hd_user set password= ? where username = ?', [654321, 'admin']);
 
// 删除
DB::delete('delete from hd_user where username = ?', ['admin']); 

注:dd() 函数用于打印变量的详细信息,是 Laravel 的辅助函数。

 

2. 查询构建器

DB 类的 table 方法为给定表返回一个查询构建器。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
// 查询所有
DB::table('user')->get();
 
// 查询多条
DB::table('user')->where('age', '>', 20)->get();
 
// 查询一条
DB::table('user')->where('age', '>', 20)->first();
 
// 查询特定字段
DB::table('user')->select('name', 'email as user_email')->get();
 
// distinct() 方法去重复
$users = DB::table('user')->distinct()->get();

   

3. Eloquent ORM

迷人的ORM,Laravel 的 Elequent 模型提供了简洁的数据库操作。比查询构建器更对象化,封装性更高。功能不如查询构建器强大,但可以使用查询构建器的方法。

1.创建模型

1
php artisan make:model User

2. 表名、主键、时间戳

表名:默认模型类名的复数作为表名,可以在模型类中定义 protected $table 属性来覆盖。

主键:默认主键名为"id",可以在模型类中定义 protected $primaryKey 属性来覆盖。

时间戳:默认会管理 created_at 和 updated_at 字段,可以在模型类中定义 public $timestamps 属性为 false 取消。

3.数据操作

在控制器方法中:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
// 插入
$user = new User;
$user->username = 'admin';
$user->save();
 
 
// 查询
 
// 查询所有
User::get();
 
// 查询多条
User::where('age', '>', '20')->get();
 
// 查询一条
user::find(1);
 
 
// 更新
$user = User::find(1); // 查找主键为1的一条记录
$user->username = 'new name';
$user->save();         // 或者用 update() 方法
 
 
// 删除
 
// 方法1.先获取记录再删除
User::find(1)->delete();
 
// 方法2.通过主键直接删除
User::destroy(1, 2);
 
// 方法3.通过 where 条件删除
User::where('username', 'admin')->delete();

 

作者:mingc - 博客园

出处:http://www.cnblogs.com/mingc

声明:本文发表于博客园。如需转载,请注明出处,并在文章页面明显位置给出原文链接,否则保留追究其法律责任的权利。

posted @   mingc  阅读(2176)  评论(0编辑  收藏  举报
编辑推荐:
· .NET Core GC计划阶段(plan_phase)底层原理浅谈
· .NET开发智能桌面机器人:用.NET IoT库编写驱动控制两个屏幕
· 用纯.NET开发并制作一个智能桌面机器人:从.NET IoT入门开始
· 一个超经典 WinForm,WPF 卡死问题的终极反思
· ASP.NET Core - 日志记录系统(二)
阅读排行:
· 支付宝事故这事儿,凭什么又是程序员背锅?有没有可能是这样的...
· 在线客服系统 QPS 突破 240/秒,连接数突破 4000,日请求数接近1000万次,.NET 多
· C# 开发工具Visual Studio 介绍
· 在 Windows 10 上实现免密码 SSH 登录
· C#中如何使用异步编程
点击右上角即可分享
微信分享提示