Laravel多态关联的介绍(附代码)

本篇文章给大家带来的内容是关于laravel多态关联的介绍(附代码),有一定的参考价值,有需要的朋友可以参考一下,希望对你有所帮助。

Laravel 多态关联(morphTo,morphMany)

在网站开发的过程中,经常会遇到 评论商品,评论文章, 评论店铺 等等,在处理这样的需求的时候, 经常会新建一张 评论表, 然后通过 一个 type字段来区分 评论的对象 开发过程如下:

新建表操作

php artisan make:model Models/Comments -m

表字段:

 public function up()    {        Schema::create('comments', function (Blueprint $table) {            $table->increments('id');            $table->timestamps();            $table->integer('member_id');            $table->string('comment_object_type');   # 评论对象            $table->integer('comment_object_id');    # 评论对象的id            $table->text('comment_content');         # 评论内容            $table->tinyInteger('status');        });    }

做数据迁移:

php artisan migrate

造数据
用户 ID 为2和4 的用户对 商品ID 为 1,2,3,4的商品进行评论:

INSERT INTO `comments`(`member_id`,`comment_object_type`,`comment_object_id`,`status`,`created_at`,`updated_at`)VALUES(2,'App\Models\Goods',1,0,'2018-09-07 15:58:04','2018-09-07 15:58:04'),(2,'App\Models\Goods',2,0,'2018-09-07 15:58:04','2018-09-07 15:58:04'),(2,'App\Models\Goods',3,0,'2018-09-07 15:58:04','2018-09-07 15:58:04'),(2,'App\Models\Goods',4,0,'2018-09-07 15:58:04','2018-09-07 15:58:04'),(4,'App\Models\Goods',3,0,'2018-09-07 15:58:04','2018-09-07 15:58:04'),(3,'App\Models\Goods',4,0,'2018-09-07 15:58:04','2018-09-07 15:58:04')

2.用户ID 为2 的用户 对 店铺ID 为 1,4 的 店铺进行了评论

INSERT INTO `comments`(`member_id`,`comment_object_type`,`comment_object_id`,`status`,`created_at`,`updated_at`)VALUES(2,'App\Models\Stores',1,0,'2018-09-07 15:58:04','2018-09-07 15:58:04'),(2,'App\Models\Stores',4,0,'2018-09-07 15:58:04','2018-09-07 15:58:04'),

查询
数据造完毕, 接下来要做查询,查询一下 商品id为2的 所有评论, 并且查询出评论人的信息
普通查询:

public function comment_list(Requset $request, Goods $goods)  {        # 查询商品的所有评论        $comments = Comment::where('comment_object_type',Goods::class)->where('comment_object_id',$goods->id)->get();       if($comments) {          foreach($comments as $comment) {                 $comment->member = Member::find('id',$comment->member_id)               }       }       dd($comments)   }

普通连表查

Comment.php 文件

# Comment model 文件修改       # 查找评论的用户的信息       public function member()        {            return $this->belongsTo(Member::class, 'comment_member_id');        }

需求的查询

 public function comment_list(Requset $request, Goods $goods)  {        # 查询商品的所有评论        $comments = Comment::where('comment_object_type',Goods::class)->where('comment_object_id',$goods->id)->get();        # 省掉了 循环 在模板遍历的时候 直接调用  $item->member 查看用户信息       dd($comments)   }

多态查询

Comment.php 文件

# Comment model 文件修改 # 评论对象    public function comment_object()    {        return $this->morphTo();    }   # 查找评论的用户的信息   public function member()    {        return $this->belongsTo(Member::class, 'comment_member_id');    }

Goods.php 文件

# 商品关联评论    public function comments()    {        return $this->morphMany(Comment::class,self::class,'comment_object_type','comment_object_id');    }

需求的查询

public function comment_list(Requset $request, Goods $goods) {        # 查询商品的所有评论        $comments =$goods->comments()->with('member')->paginate(15);        dd($comments) }

本篇文章到这里就已经全部结束了,更多其他精彩内容可以关注PHP中文网的php视频教程栏目! 

以上就是Laravel多态关联的介绍(附代码)的详细内容,更多请关注php中文网其它相关文章!

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 chuangxiangniao@163.com 举报,一经查实,本站将立刻删除。
发布者:程序猿,转转请注明出处:https://www.chuangxiangniao.com/p/112100.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2025年11月23日 19:03:21
下一篇 2025年11月23日 19:35:55

相关推荐

  • 狗狗币新手起步:从零基础到熟练交易的全流程

    答案是本文指导新手完成狗狗币交易全流程:首先选择合规平台注册账户并完成KYC认证及安全设置;其次通过法币充值购买USDT稳定币注入资金;然后在DOGE/USDT交易对中选择市价或限价单买入狗狗币;最后建议将资产提至个人储存包以提升长期持有安全性。 本文将指导您完成从零开始学习狗狗币交易的全过程,涵盖…

    2025年12月9日
    000
  • 谁动了稳定币的锚?复盘历年重大脱锚事件,一文汇总

    五年时间里,我们目睹了稳定币在多个场景中脱锚。 Binance币安 欧易OKX ️ Huobi火币️ 从算法到高杠杆设计,再到现实世界银行倒闭的连锁反应,稳定币正在经历一次又一次的信任重建。 这篇文章,我们试图把 2021–2025 年间加密行业几次标志性的稳定币脱锚事件串联起来,剖析背后的原因和影…

    2025年12月9日
    000
  • 币圈说的“撸空投”是什么?零成本获取加密资产的完整指南

    撸空投是通过完成项目方任务或链上交互免费获取代币的行为,主要分为持币快照型、交互任务型和社交参与型三类;需使用专用钱苞、多设备环境及小额Gas费准备工具;通过官网、官方社媒和第三方平台获取可靠信息;执行任务时保持活跃、深度参与社区并留存凭证;最后定期监控资产变动、合理变现并警惕诈骗。 “撸空投”指通…

    2025年12月9日
    000
  • 什么是“治理代币”?持有它如何参与项目决策投票?

    治理代币赋予持有者链上投票权以参与去中心化项目决策,其投票权重通常与持币量成正比。用户需通过交易或奖励获取代币,并将其存入支持治理的存储或连接至项目DAO平台以激活投票资格。具体操作包括访问官方治理页面、使用Web3存储登录并确认代币余额。治理流程分为提案提交与社区投票两个阶段,任何符合条件的用户可…

    2025年12月9日
    000
  • 欧易交易所官网入口地址_okx官方app下载安装教程

    刚接触欧易(okx)交易所,不知从何下手?别担心!这篇文章就是为您准备的保姆级指南,将带您轻松搞定从官网访问、app下载安装到新用户注册的每一个环节,确保您顺利开启数字资产之旅。 第一步:访问欧易OKE官方网站 1、开启您的欧易之旅,请通过浏览器访问欧易OKE官网入口。2、访问后,请先仔细核对浏览器…

    2025年12月9日 好文分享
    000
  • 什么是链上治理(On-Chain Governance)?普通用户如何参与项目决策

    链上治理是通过区块链协议直接执行投票和决策的机制,普通用户可利用代币参与提案表决。 为了方便新手快速上手币圈交易并实时查看市场数据,可通过主流交易所币安(Binance)或欧易OKX注册账户并使用官方APP,可实时查看交易深度、挂单量及资金流向,帮助判断买入或卖出时机。 币安注册链接与下载地址: 欧…

    2025年12月9日
    000
  • 欧易交易所最新入口_如何找到欧易okx官方下载链接

    准备踏入数字资产的世界吗?选择一个安全可靠的平台至关重要。本篇指南将带您轻松上手全球知名的欧易(okx)交易所,从寻找官方入口到完成app下载与新用户注册,我们为您整理了最详尽的步骤,确保您的每一步都安全无忧。 第一步:安全访问欧易OKX官网 1. 点击这里直接访问 欧易OKE官网入口。2. 在访问…

    2025年12月9日 好文分享
    000
  • 欧易okx注册入口官网_2025最新手机版欧易app下载

    准备踏入精彩的数字资产世界吗?欧易(okx)作为全球领先的交易平台,是许多新老用户的首选。本篇全方位指南将手把手带您完成从访问官网、下载app到注册交易的每一步,确保您的入门之旅既安全又顺畅。 第一步:访问欧易OKX官方网站 1、点击下方提供的欧易OKX官方安全入口,直接跳转至官网。2、请务必核对浏…

    2025年12月9日 好文分享
    000
  • 欧易okx官方入口在哪里_2025okx交易所平台官网入口

    踏入数字资产世界的第一步,是选择一个安全可靠的平台。本文将为您详细拆解欧易(okx)交易所的官方网站访问、手机app下载安装,以及新用户账户注册的全过程,旨在为您提供一份清晰、安全、高效的操作指南,帮助您轻松开启您的数字资产之旅。 第一步:访问欧易OKX官方网站 1、请通过下方的欧易OKE官网入口,…

    2025年12月9日 好文分享
    000
  • GAIB币是什么?值得投资吗?GAIB项目概述,代币经济与空投领取指南

    gaib 通过将 gpu 及其收益代币化,开创了人工智能经济层的新纪 元,创造了 aid——人工智能领域首个合成稳定币。 Binance币安 欧易OKX ️ Huobi火币️ GAIB币最新动态 币安Alpha(官方注册 官方下载)将于2025年11月19日18:00(东八区时间)上线和开放GAIB…

    2025年12月9日 好文分享
    000
  • 什么是“期货溢价”和“期货折价”?它们反映了什么样的市场情绪?

    期货溢价指期货价格高于现货,反映市场乐观预期与持有成本;折价则相反,显示现货紧张或悲观情绪。文章首先解释二者概念:溢价(Contango)源于未来供应紧张或需求增长预期,折价(Backwardation)主因当前供应短缺或市场看跌。接着分析驱动因素:持有成本推高远月价格,供需错配引发结构变化,并提出…

    2025年12月9日
    000
  • 加密世界的价值捕获:详解协议收入与代币价格的真实关系

    协议收入通过回购销毁、质押分红和国库赋能传导至代币价值,但需警惕高通胀、低效治理与市场情绪导致的价值脱钩。 加密协议的收入是衡量其健康度的关键,但高收入并不直接等于高币价。真正的价值捕获在于收入如何有效回馈给代币持有者,这需要深入分析其经济模型和治理机制。 协议收入的核心来源 1、交易手续费:这是最…

    2025年12月9日
    000
  • 详解去中心化身份(DID): 数字主权,Web3世界的通行证与隐私解决方案

    DID是Web3中用户掌控数字身份的核心技术,由唯一标识符和包含公钥、服务端点的DID文档组成,基于“did:method:id”格式在链上或去中心化网络存储;用户通过本地私钥控制身份,实现自主认证与授权;依托可验证凭证(VC)和零知识证明,支持选择性信息披露与离线验证,保障隐私;通过绑定多地址与跨…

    2025年12月9日
    100
  • Polygon (MATIC)币还值得持有吗?2025、2026-2030年价格预测

    MATIC是否值得持有取决于其生态发展与技术进展。首先,总锁仓价值(TVL)连续三个月增长超15%表明DeFi生态扩张;其次,日均活跃地址稳定在200万以上反映用户基础健康;再者,zkEVM等关键技术升级进度影响长期竞争力。链上数据方面,持币地址数持续增加、协议收入上升且市销率低于行业平均,显示估值…

    2025年12月9日
    000
  • 比特币诞生至今价格全览 BTC历史价格趋势K线图2025最新整理

    比特币自2009年诞生至2025年经历多轮牛熊周期,1、早期价格从披萨交易起步,2011年首次达32美元;2、2013年中国市场推动涨至1242美元;3、2017年投机热潮推升至近2万美元;4、2021年机构入场助力突破6.8万美元;5、2024年ETF获批与减半事件催生新高7.2万美元;6、202…

    2025年12月9日
    000
  • 区块链跨链应用有哪些?全球区块链跨链软件大全

    区块链跨链应用通过实现多链互操作提升资产流转效率,涵盖五大领域:一、DeFi跨链应用利用智能合约和跨链协议打通流动性,用户将资产存入源链合约后,经验证节点确认,目标链铸造等值锚定资产,建议使用1inch或THORSwap等多链聚合器;二、多链游戏平台通过跨链桥锁定源链NFT并生成凭证哈希,经验证后在…

    2025年12月9日
    000
  • 跨链桥(Bridge)安全指南: 原理、风险与如何选择安全的跨链方案?

    跨链桥通过锁定与映射实现资产跨链流通,其安全性依赖共识验证与去中心化机制。1、用户将资产存入源链合约触发跨链;2、监控节点传递信息至目标链;3、目标链验证后释放等值资产;4、返回时销毁映射资产并解锁原链资产。主要风险包括签名伪造、重放攻击、治理滥用、节点合谋、轻客户端缺陷及合约漏洞。安全性评估应关注…

    2025年12月9日
    000
  • 雪崩协议(AVAX)价格历史回顾 AVAX币K线走势图2025版

    AVAX %ignore_a_1%价格走势呈上涨趋势,1月26日前后受GAO或采用其链的预测推动,价格一度达36.75美元,日内涨幅3.52%,交易量达5.86亿美元,日线形成多头排列,RSI位于健康区间,MACD现金叉,叠加生态发展与技术升级,市场信心增强。 binance币安交易所 注册入口: …

    2025年12月9日
    000
  • Cosmos (ATOM)是什么?ATOM币的跨链技术和购买渠道

    Cosmos(ATOM)是实现区块链互联的生态系统,通过IBC协议和Tendermint共识支持跨链通信与高效交易,ATOM用于质押、治理和费用支付,开发者可利用Cosmos SDK构建并连接定制化应用链,用户可通过合规交易平台兑换ATOM代币。 2025主流数字货币交易所: 1、欧易OKX 注册入…

    2025年12月9日
    000
  • 欧易OKX手机版APP下载 v6.147.0 官方版

    欧易okx手机版app下载 v6.147.0在哪里?这是不少网友都关注的,接下来由php小编为大家带来欧易okx手机版app最新版本下载地址,感兴趣的网友一起随小编来瞧瞧吧! 欧易OKX官网入口: 欧易OKX手机版APP v6.147.0 官方版下载: 平台核心功能 1、提供全球范围内的数字货币行情…

    2025年12月9日
    000

发表回复

登录后才能评论
关注微信