不基于任何模型使用 Laravel 5.1 的授权功能

Laravel 5.1.11 引入了一个新特性 —— 授权机制,该特性被设计为定义一系列与模型相关联的策略来实现授权。但有时候我们想要定义一个检测更高级别权限的策略,在该场景下不基于任何模型(比如文章更新权限基于Post模型)。下面这段代码即可实现该需求: 1、创建策略类 class AdminPolicy { public function managePages($user) { r…

Laravel 5.1 中的ACL用户授权及权限检查功能实现教程

1、引言 Laravel提供的开箱即用的认证功能使得用户注册、登录、退出和密码重置变得便捷和简单。 但是如果你需要控制访问站点特定部分,或者让非管理员打开/关闭特定页面,又或者确保某些用户只能编辑自己发布的东西(如文章),那么 你就需要引入类似BeatSwitch Lock这样的工具或者自己手动编写这样的功能。我们将这样的功能称之为ACL:Access Control Lists(访问控…

Laravel Eloquent 模型中使用时间戳

Laravel Eloquent模型类履行标准的时间戳管理,本脚本片段适用于所有场景(例如使用基本插入命令的迁移),此外,本脚本提供了覆盖存储时间戳格式的能力。 示例代码: class YourModel extends Eloquent { public $timestamps = false; public static function boot() { parent::boot(…

Eloquent ORM 实例教程 —— 关联关系及其在模型中的定义(二)

上一节我们讲了Eloquent ORM的三种基本关联关系:一对一、一对多和多对多,这一节我们来看一些更复杂的关联关系: 4、远层一对多 所谓的“远层一对多”指的是通过一个中间关联对象访问远层的关联关系,比如用户与文章之间存在一对多关系,国家与用户之间也存在一对多关系,那么通过用户可以建立国家与文章的之间的一对多关联关系,我们称之为“远层一对多”。 为了测试该关联关系我们新建一个国家表co…

Eloquent ORM 实例教程 —— 关联关系及其在模型中的定义(一)

数据表之间往往不是孤立的,而是纵横交叉、相互关联的,比如一个用户发表了多篇文章,一个文章又有多个评论,等等。Eloquent模型支持多种关联关系,下面让我们一一道来。 1、一对一 一对一是最简单的关联关系,表示表A和表B的记录一一对应,比如一个用户对应一个社交账号,在演示该关联关系之前我们先创建一个社交账号表user_accounts: php artisan make:migratio…

Eloquent ORM 实例教程 —— 查询作用域和模型事件

1、查询作用域 Eloquent还支持将一些常用的查询封装到模型方法中,方便调用,我们将其称之为“查询作用域”,实现查询作用域很简单,只需要在模型方法前加上scope前缀即可,比如我们经常需要获取浏览数最高的文章,就可以使用该机制实现——在Post中定义一个scopePopular方法: public function scopePopular($query) { return $que…

Eloquent ORM 实例教程 —— 模型删除及软删除相关实现

1、删除模型 1.1 使用delete删除模型 删除模型很简单,先获取要删除的模型实例,然后调用delete方法即可: $post = Post::find(5); if($post->delete()){ echo ‘删除文章成功!’; }else{ echo ‘删除文章失败!’; } 该方法返回true或false。 1.2 使用destroy删除模型 当然如果已知要删除的模型…

Eloquent ORM 实例教程 —— 模型创建、更新及批量赋值

1、创建模型 1.1 使用save方法创建模型 调用Eloquent模型类的save方法即可创建模型并插入数据到数据库: $post = new Post; $post->title = ‘test 4’; $post->content = ‘test content’; $post->user_id = 1; $post->cat_id = 1; if($pos…

[ Laravel 5.1 文档 ] Eloquent ORM —— 序列化

1、简介 当构建JSON API时,经常需要转化模型和关联关系为数组或JSON。Eloquent包含便捷方法实现这些转换,以及控制哪些属性被包含到序列化中。 2、基本使用 2.1 转化模型为数组 要转化模型及其加载的关联关系为数组,可以使用toArray方法。这个方法是递归的,所以所有属性及其关联对象属性(包括关联的关联)都会被转化为数组: $user = App\User::with(…

[ Laravel 5.1 文档 ] Eloquent ORM —— 起步

1、简介 Laravel自带的Eloquent ORM提供了一个美观、简单的与数据库打交道的ActiveRecord实现,每张数据表都对应一个与该表进行交互的“模型”,模型允许你在表中进行数据查询,以及插入、更新、删除等操作。 在开始之前,确保在config/database.php文件中配置好了数据库连接。更多关于数据库配置的信息,请查看文档。 2、定义模型 作为开始,让我们创建一个E…