php - laravel 使用orm时运用渴求式加载with方法,怎么在多条件中使用with方法
天蓬老师
天蓬老师 2017-04-10 17:31:31
[PHP讨论组]

例子如下:我需要根据不同条件加载不同关联关系数据,有一张表A,里面有字段relationId、type等,type包括多种,如:'article','problem','comment'等,我需要根据type不同的类型加载关联数据,例如需要根据A表中的字段type是article来使用with('article')来加载article的数据,type为problem同上,代码:A::where('type', 'article')->with('article'),A::where('type', 'problem')->with('problem'),怎么让这两个合起来放到一起,请大神帮忙解决一下!

天蓬老师
天蓬老师

欢迎选择我的课程,让我们一起见证您的进步~~

全部回复(1)
迷茫

找了一些下午,最后发现还是自己没有认真阅读理解laravel文档,这个问题属于多态关系,一下午就跳进这个坑了,至于怎么做去看laravel文档吧,我就不细说了。但是我这儿要分享一下我下午踩坑获得的体会与经验,对于多态关系,我百度了一下,几乎都和laravel文档里面给的例子差不多,没有一些详解,对于MorphTo()方法的参数没有说明,于是我查了下laravel api,英文不怎么好的我还是看懂了的:),MorphTo方法有三个参数:第一个是这个多态关系你要一个命名,不给就默认是方法名;第二个是自定义type类型,数据库表里那个代表类型的字段名,这个type字段的值是类名,例如:App\Photo(要加上App哦!);第三个参数就关联其他表的id的那个字段名;我还是粘一下代码帮助理解:

/**
* 数据库字段是id,userId,dynamicRelationId,type
*/
public function dynamicRelation(){
        return $this->morphTo('dynamicRelation', 'type', 'dynamicRelationId');
    }

希望对大家有帮助!

热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责申明 意见反馈 讲师合作 广告合作 最新更新 English
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送
PHP中文网APP
随时随地碎片化学习
PHP中文网抖音号
发现有趣的

Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号