Laravel 多态关联使用的案例

1.实现的功能,:短信发送,需要签名和模板审核,审核结果要插进审核记录表

2,在signature(签名表模型)和 template(模板表模型)添加多态对应关系代码其实一样,代码如下:

审核记录表需要有:auditable_type, 用来保存所属模型的类名.该字段可默认插入值,也可自定义
A:在审核记录表添加
public function auditable()     {         return $this->morphTo();     }
B:在签名表加
public function audite()     {         return $this->morphMany(‘App\AuditRecord‘, ‘auditable‘);     }
C:在模板表模型
public function audite()     {         return $this->morphMany(‘App\AuditRecord‘, ‘auditable‘);     }

3.添加完对应关系之后就可以简单使用了:例如

  $template=Template::whereIn(‘id‘, $id)->get();   $template->audite()->save($auditRecord);//$auditRecord是审核记录内容

原文地址:https://www.cnblogs.com/mouseleo/p/9180742.html

时间: 2024-10-16 09:41:21

Laravel 多态关联使用的案例的相关文章

laravel的多态关联--morphTo和morphMany

首先,文档里面讲述的不是特别详细,详细寻找查询流程没有过多介绍,只是介绍如何去定义,直接使用,导致很多该明白的东西,没有说明,下面详细看看这个多态关联 是怎么定义,使用,详细查询的. 先看文档介绍 多态关联允许一个模型在单个关联下属于多个不同模型.例如,假如你想要为产品和职工存储照片,使用多态关联,你可以在这两种场景下使用单个photos表,首先,让我们看看构建这种关联关系需要的表结构: staff id - integer name - string products id - integer

SQL反模式学习笔记7 多态关联

2014-10-13 09:50:54 目标:引用多个父表 反模式:使用多用途外键.这种设计也叫做多态关联,或者杂乱关联. 多态关联和EAV有着相似的特征:元数据对象的名字是存储在字符串中的. 在多态关联中,父表的名字是存储在Issue_Type单独一列中,有时候这样的设计被称作:混合数据与原数据. 查询示例: select * from A as a               left join B as b on a.xId=b.Id and a.xType='b'            

逻辑数据库设计 - 多态关联

多态关联 先说明什么是多态关联. 假设我们有一张地址表,其中的地址可能是对于User中的,也可能是对于Orders中的. 以上,只是举个例子,实际的例子还有很多,比如我们要设计一个内容管理系统(CMS),我们的CMS有一个文章表,一个软件表.还要求支持评论,那么我们的评论表的Id是引用文章表还是引用软件表呢? 对于以上例子的缺点,貌似书本上有故意为此多态关联的模式走软的嫌疑.缺点不说了,主要是查询麻烦,其次不能够支持外键约束. 解决方案 交叉表 对于这种需要外键引用为多个表的情况,可以建立一张交

laravel中关联模型查询选择性的字段

在使用 Laravel 的关联查询中,我们经常使用 with 方法来避免 1+N 查询,但是 with 会将目标关联的所有字段全部查询出来,对于有强迫症的PHPer来说,当然是不允许发生的. 第一种方法:在模型里就写好,固定死 方便简洁,但是不能针对不同的需求去关联不同的字段,一旦在模型关联中写死,所有的关联的字段都是一样的 在user模型里,写关联函数,一对多.此模型放在APP\Models下,默认放在App下 1 public function hasPost(){ 2 return $th

laravel框架关联的模型怎么加入筛选条件

比如:商品模型关联评论模型,要给商品模型家条件很简单,在控制器里直接写就行了,但是要给关联的评论模型加筛选条件,该怎么加 protected $table = "wd_yylm_goods"; public function evaluate() { return $this->hasOne('App\Http\Model\EvaluateModel','good_id','id')->where('status',0); } 在商品模型里面定义关联关系的时候,后面加入wh

laravel 模型关联之(多对多)

多对多 多对多就相当于一个专题Topic有多个文章,但是这多个文章又属于多个专题, 而且多对都必须有一个表是他们之间的关联关系表PostTopic Post表和Topic表之间没有直接的关联,而且通过关联关系表关联的 如果说你用的是一多多来获取一个专题的文章的时候, Post模型对应的是PostTopic,但是你只能获取到文章的ID,反而又麻烦 第一个参数就是要获取的模型(Posts) 第二个参数就是把这两个模型关联起来的关联关系表(TopicPost) 第三个参数就是TopicPost表中和当

记录一次laravel 模型关联 一对一, 一对多 取数据

一对一是 用户表和用户信息表 一个用户对应一个用户信息 user 对应 userinfo user 中存入的是邮箱密码之类的,userinfo存入的是姓名年龄之类的. 在控制器中取数据  从userinfo取数据带上user信息   $userinfos = Userinfo::with(' user ')-paginate( 5 ); 取出所有用户信息分为每页5条 在视图里面遍历输出每个用户的信息,例如   取姓名 :$userinfo->name   取user表中的数据   $userin

多态应用-打印商品价格案例

1 package com.szxs.goods; 2 /** 3 * 父类:商品类 4 * @author 5 * 6 */ 7 public abstract class Goods { 8 public abstract void printPrice(); 9 } 1 package com.szxs.goods; 2 3 //食品类 4 public class Foods extends Goods { 5 6 public void printPrice() { 7 System.

laravel 多态映射(打赏为例)

迁移: public function up() { Schema::create('rewards', function (Blueprint $table) { $table->increments('id'); $table->integer('user_id')->unsigned()->comment('操作用户'); $table->integer('target_user')->unsigned()->comment('目标用户'); $table-