请问定义morphTo多态,在查询的时候 如果根据不同的模型来select不同的字段?

比如有个评论表comments定义了

public function commentable()
{
    return $this->morphTo();
}

news表的字段是id, title
article表的字段是id, sub_title
在查询comments记录的时候 如何用with查询,判断如果是 news模型则select id,title, 如果是article模型则select id, sub_title?

with(['commentable' => function ($query) {
    // 如果是news
    $query->select(['id', 'title']);
    // 否则如果是article
    $query->select(['id', 'sub_title']);
}])
《L04 微信小程序从零到发布》
从小程序个人账户申请开始,带你一步步进行开发一个微信小程序,直到提交微信控制台上线发布。
《L02 从零构建论坛系统》
以构建论坛项目 LaraBBS 为线索,展开对 Laravel 框架的全面学习。应用程序架构思路贴近 Laravel 框架的设计哲学。
讨论数量: 2

如果你只是为了显示方便,可以看下 修改器《Laravel 6 中文文档》 是否满足你的需求
news表模型

public function getTitleAttribute() {
        return $this->title;
}

article表模型

public function getTitleAttribute() {
        return $this->sub_title;
}

commentable->title

3年前 评论

我了解到的是不支持的,要么表字段都一样,要么就没办法了,查询单条数据的时候只能根据不同来源判断,然后if else 取不同的字段

3年前 评论

讨论应以学习和精进为目的。请勿发布不友善或者负能量的内容,与人为善,比聪明更重要!