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;
......
猜你喜欢
C与PHP的联系与区别
阅读 229

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

面试小结——01
阅读 258

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

Laravel初探——安装
阅读 244

安装Composer 1、curl -sS https://getcomposer.org/installer | php 2、mv composer.phar /usr/local/bin/composer 3、composer install 安装Laravel 1、compos...

使用supervisor使Laravel的queue保持后台常驻
阅读 330

1、array_column — 返回数组中指定的一列 $result = array_column([["aa"=>1,&...

Dockerfile 中 配置安装 php 扩展
阅读 475

以下配置实现了 在docker环境中安装scwl中文分词的php扩展: # scwl RUN curl 'http://www.xunsearch.com/scws/down/scws-1.2.3.tar.bz2' -o scws-1.2.3.tar.bz2 \ &am...

PHP设计模式之单例模式
阅读 225

单例模式用于保证只有单个对象被创建 ,确保对象的唯一性。 示例应用有: 1)计算网站访问量时,可以使用单例模式创建计数器保证计算器的唯一性,并将计数器全局使用,这样即节约资源避免频繁创建销毁,又可以控制并发避免计算数据错误。 2)购物系统中的库存变更,使用单例模式创建库存对象,可以使库存变更...

Closure 代表匿名函数的类
阅读 252

Closure 用于获取并使用匿名函数、将匿名函数绑定到具体的类,从而实现对匿名函数的更多控制。 举个例子: #不绑定,直接使用匿名函数 $f = function ($var){ return $var; }; function getClosure(Closure $f,$...

PHP设计模式之工厂模式
阅读 205

工厂模式是一种隐藏类的实例化细节,并且对一系列类使用相同的实例化方式,可以很方便的扩展更多的实现同一个接口的类的创建对象的方式。 示例应用场景有: 1)在线支付 支付有多种方式,比如微信支付,支付宝支付,银联支付等,根据用户的选择而采用相应的支付方式; 2)访问量统计 在一个业务较复杂的...