一、.env文件

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

// 应用相关参数
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 中有如下注释:

/*
|--------------------------------------------------------------------------
| 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--CBC (默认)表示 key 长 32 位字符,或者 AES--CBC 表示 16 位。

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

php artisan key:generate

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

二、模型操作

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

1. DB类

// 插入
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 方法为给定表返回一个查询构建器。

// 查询所有
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.创建模型

php artisan make:model User

2. 表名、主键、时间戳

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

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

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

3.数据操作

在控制器方法中:

// 插入
$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();

Laravel 5.2 四、.env 文件与模型操作的更多相关文章

  1. laravel中如何防止直接访问.env文件

    .env文件含有数据库账号密码等敏感数据,在laravel5.2中,在本地访问127.0.0.1/laravel/.env可直接访问到.env. 为避免.env被直接访问,可使用重定向,方法如下: 在 ...

  2. 关于Lumen / Laravel .env 文件中的环境变量是如何生效的

    .env 文件包含默认环境变量,我们还可自定义其他任何有效的变量,并可通过  调用 env() 或 $_SERVER 或 $_ENV  来获取该变量.那么env()是如何加载到这些变量的呢?在Lume ...

  3. Laravel 学习 .env文件 getenv 获得环境变量的值

    Laravel 学习 .env文件 getenv 获得环境变量的值  我们还需要对应用的 .env 文件进行设置,为应用指定数据库名称 sample. .env . . . DB_DATABASE=s ...

  4. laravel .env文件的使用

    umen 是 laravel 的衍生品,核心功能的使用和 laravel 都是一致的,但配置文件这一方面,lumen 在 laravel 的基础上增加了更简便的配置方式:lumen 采用了 DotEn ...

  5. laravel .env 文件的使用

    转载地址  http://www.cnblogs.com/Eden-cola/p/DotEnv-in-lumen.html umen 是 laravel 的衍生品,核心功能的使用和 laravel 都 ...

  6. Laravel 不同环境加载不同的.env文件

    假设有4个.env文件.分别为 .env.local .env.dev .env.test .env.prd 方式一 第一步:bootstrap\app.php 加入代码 $envs = ['loca ...

  7. laravel7 ORM和laravel模型操作

    1.什么是ORM 对象关系映射(Object Relation Maping),这个关系就是关系数据库.因此,顾名思义,ORM的核心是我们通过操作对应来操作关系数据库. ORM的优点:  ORM提供了 ...

  8. linux 学习3 第四讲 文件常用命令

    好几天没有在网上总结了.我把ppt先誊写在本子上,这样听的时候记录就方便很多,添些东西就可以. 我想先看shell那部分,但是没有之前几章的准备,是没法跟着视频动手操作的.所以还是按部就班得学习. 虽 ...

  9. *.pro、*.pri、*.prf、*.prl等四种文件

      尽管每次和cmake对比起来,我们总是说 qmake 简单.功能少.但是qmake仍然是一个非常复杂的东西,我想大多人应该和我一样吧: 不是太清楚CONFIG等变量到底如何起作用的 用过的qmak ...

随机推荐

  1. InnoDB高并发原理

    一.并发控制 为啥要进行并发控制? 并发的任务对同一个临界资源进行操作,如果不采取措施,可能导致不一致,故必须进行并发控制(Concurrency Control). 技术上,通常如何进行并发控制? ...

  2. 在ios 上 按钮 disabled 样式显示异常

    将input,button或textarea设置为disabled后,在iphone手机上样式将被覆写-webkit-appearance:none; 文字的颜色还是灰色. 原本在android 上 ...

  3. byte字节的输入流 建议使用字节数组形式接受内容 因为当输入流是汉字时候 会超出字节的范围 出现无法读取的现象

    byte字节的输入流 建议使用字节数组形式接受内容 因为当输入流是汉字时候 会超出字节的范围 出现无法读取的现象

  4. bzoj3168-钙铁锌硒维生素

    题目 这道题的题意理解很重要,直接写原题了. 小林把人体需要的营养分成了\(n\)种,他准备了2套厨师机器人,一套厨师机器人有\(n\)个,每个厨师机器人只会做一道菜,这道菜一斤能提供第\(i\)种营 ...

  5. Python虚拟环境virtualenv的使用

    virtualenv 是一个创建孤立的Python环境的工具.可以让你创建各自独立的.互不影响的Python开发环境. 使用pip安装即可 pip install virtualenv 查看是否安装成 ...

  6. [洛谷P3550][POI2013]TAK-Taxis

    题目大意:一条路上有三个点,$0$为起始位置,$d$为总部,$m$为家.有$n$辆车,每辆车最多行驶$x_i$,都从$d$出发,可以在任意位置结束,问最少几辆车可以到家. 题解:贪心,发现当人在$[0 ...

  7. BZOJ 1085 [SCOI2005]骑士精神 【A*启发式搜索】

    1085: [SCOI2005]骑士精神 Time Limit: 10 Sec  Memory Limit: 162 MB Submit: 2838  Solved: 1663 [Submit][St ...

  8. Pycharm中一些不为人知的技巧

    工欲善其事必先利其器,Pycharm 是最受欢迎的Python开发工具,它提供的功能非常强大,是构建大型项目的理想工具之一,如果能挖掘出里面实用技巧,能带来事半功倍的效果. 以下操作都是基于 Wind ...

  9. Codeforces Round #340 (Div. 2)B

    B. Chocolate time limit per test 1 second memory limit per test 256 megabytes input standard input o ...

  10. GYM 101875 2018 USP-ICMC

    3月自训 (1):10/12 A: 题意:每个人可以连边,最远连到第(i+k)%n个人,边权为这个人与另一个人连边距离,求生成一颗最大生成树的权值和是多少 题解:可以证明的是,我们每一个人都向接下来的 ...