博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Laravel模型的一些小技巧
阅读量:5163 次
发布时间:2019-06-13

本文共 970 字,大约阅读时间需要 3 分钟。

隐藏字段

我在项目遇到的情景是,当使用关联模型获取数据的时候,比如产品模型和图片模型,通过产品模型来关联图片模型,这个时候我只需要图片模型的图片地址字段,其他的字段不让产品模型看到;以这个场景为实例,我们通过代码实现

我们发现上图红色框里的内容,你不想显示其他字段,就在hidden数组里填写目标字段,这样写的一个弊端,其他模型在调用图片模型的时候,这些字段也不会显示,他是全局的。

构建读取器

我们为什么要创建读取器?我们在我们正常的业务中,比如要修改我们读取字段数据,我们传统的做法是将数据获取出来,在对数据进行修改。现在有了读取器我们没有必要这样做,我们在业务逻辑里面只针对数据,不去处理数据。laravel给我们提供了方便

由上图红色的框里的内容所示,比如我们修改图片的路径,图片路径的字段img_url,这个时候构造器函数的声明是getImgUrlAttribute,注意后面必须跟Attribute这是laravel的规定,函数里面的$value就是当前字段的值,你就可以对值进行修改。还有就是我们也可以其他字段值来动态修改当前字段的值

当from的字段为1的时后我们这才修改图片的路径,注意:这些字段和值的来源是,当我们调用模型的时候,模型会自动将我们数据表的字段和值获取出来,构造器修改字段的值也是全局的,在任何一个关联模型都可以用。

关联模型可以对所关联模型的值进行改变

这句话可能听起来有点绕,我来解释一下。我通过一个场景进行解释,比如我们经常看到的商品详情,它里面介绍大多数以图片的形式展示,这些图片再添加的时候是随便传的,这个时候图片后面有一个排序字段,如果你不按照排序字段进行排序,你所获取的图片是乱的,介绍都是乱的。这个时候我们通过关联模型将图片模型的数据进行排序组装,按照我们想要的格式返回。

laravel将关联模型的数据拼接到当前模型数据的后面是通过with函数,with可以接收一个数组,数组里面的就是关联模型的函数,比如一对一关联函数,我们可以通过‘.’的方式来获取关联模型他所关联的模型,

也就是这样获取,我们要改变模型里面的值,我们就要在with函数里面写一个匿名函数来处理模型的数据,查询构造器

 

转载于:https://www.cnblogs.com/meichao/p/9142451.html

你可能感兴趣的文章
.NET CLR基本术语
查看>>
ubuntu的home目录下,Desktop等目录消失不见
查看>>
建立,查询二叉树 hdu 5444
查看>>
[Spring框架]Spring 事务管理基础入门总结.
查看>>
2017.3.24上午
查看>>
Python-常用模块及简单的案列
查看>>
LeetCode 159. Longest Substring with At Most Two Distinct Characters
查看>>
LeetCode Ones and Zeroes
查看>>
基本算法概论
查看>>
jquery动态移除/增加onclick属性详解
查看>>
JavaScript---Promise
查看>>
暖暖的感动
查看>>
Java中的日期和时间
查看>>
Django基于admin的stark组件创建(一)
查看>>
抛弃IIS,利用FastCGI让Asp.net与Nginx在一起
查看>>
C. Tanya and Toys_模拟
查看>>
springboot jar包运行中获取资源文件
查看>>
基于FPGA实现的高速串行交换模块实现方法研究
查看>>
Java Scala获取所有注解的类信息
查看>>
delphi ,安装插件
查看>>