Generic placeholder image
闲敲代码、落灯花
What's past is prologue

联系邮箱:email@hezehua.net


联系QQ:1907330840

座右铭

保持热情,持续学习,每日精进

laravel 关联关系之多态关联

laravel 关联关系之多态关联

本文与作者在csdn上的博文【laravel 关联关系之多态关联】保持同步


文章、作者与收藏的关联关系:收藏既可以是对文章的收藏,也可以是对作者的收藏
表:artist:
字段:id name
表:article:
字段:id title content
表:favorites:
字段:id favorite_type favorite_id


class favorites extents model{
......
    public function favorite{
        return morphTo('App\favorites','favorite');//第二个参数是favorite_type favorite_id字段中的favorite
        }
......
}

class artist extents model{
......
    public function favorites{
        return morphMany('App\favorites','favorite');//第二个参数是favorite_type favorite_id字段中的favorite
   }
......
}

class article extents model{
......
    public function favorites{
        return morphMany('App\favorites','favorite');//第二个参数是favorite_type favorite_id字段中的favorite
   }
......
}

获取对文章的收藏

......
    Artist::find(1)->favorites;
......

获取对作者的收藏

......
    Article::find(1)->favorites;
......

获取收藏的所属对象

......
    Favorite::find(1)->favorite;
......
猜你喜欢
PHP设计模式之建造者模式
阅读 140

建造者模式用于将复杂对象简单化,一个复杂的对象分解成多个更简单的对象,然后将简单对象组合起来就生成了复杂对象。 应用示例: 1)

面试小结——01
阅读 174

1、相关知识点: 1、文件基本操作 (1)、file_exists —检测文件是否存在 (2)basename — 返回路径中的文件名部分 (3)dirname — 返回路径中的目录部分 (4)pathinfo — 返回文件路径的信息 (5)fopen — 打开文件或者 UR (...

一个在PDO数据绑定上踩的坑
阅读 148

不经常用PDO,一直不知道数据绑定的时候的一个细节——不可使用同一个变量名为不同的符号进行数据绑定。 因为这样的话会导致在执行execute()时,不同符号都绑定了同一个值——最后一个赋予这个变量名的值。 比如: $letters = array('a','b','c'); foreach(...

php脚本定时更新商品列表
阅读 186

电商项目中为了提高抗并发能力,需要对商品列表做缓存,以下是更新缓存用的脚本: //PRODUCTION_为缓存商品列表的临时key //PRODUCTION为缓存商品列表key $con = mysqli_connect($db_config['host'],$db_config['user...

Laravel中的env函数获取不到确定存在的配置
阅读 176

今天重启服务器后发现网站有个报错,一看是获取配置出错,于是去检查配置,发现没问题,配置是正确的,于是想着换成getenv函数试试,还是不行,执行一遍composer install、composer update、composer dump-autoload还是无效,然后想起之前env配置不生效时...

木桶布局 原理与实现
阅读 189

项目中有一些图片布局需要按木桶布局排列,而前端工程师是个新手,不会用JS实现,只能在后端处理,直接返回处理好的图片尺寸,达到木桶布局的效果。 木桶布局就是将图片按行、等高排列,并且保证每一行图片排列正好占满,边距相等,效果如下: 实现木桶布局的图片尺寸处理主要有以下步骤: 1、设置行高、...

Composer自动加载(一)
阅读 194

Composer是PHP的基于项目的包管理工具,它本身集成一个autoloader,支持PSR-4,PSR-0,classmap,files autoloading.

C与PHP的联系与区别
阅读 146

联系: 1、PHP是C语言实现的一个应用软件,PHP的程序执行,最终也是调用C函数,很多时候,一些要优化性能的工作可以通过对PHP进行C扩展来实现。 区别: 0、PHP是面向对象语言,C是面向过程的函数过程式语言。 1、PHP是弱类型语言,使用变量时不需要申明类型,而且各种类型之间容易进行...