php – 将hasManyThrough应用于更深层次的关系

发布时间:2022-04-30 发布网站:脚本宝典
脚本宝典收集整理的这篇文章主要介绍了php – 将hasManyThrough应用于更深层次的关系脚本宝典觉得挺不错的,现在分享给大家,也给大家做个参考。
Laravel文档似乎表明hasmanyThrough声明只能用于“深度”两级的关系.更复杂的关系怎么样?例如,用户有许多@L_777_1@,每个主题都有许多套牌,每个套牌都有许多牌.使用hasManyThrough声明让所有Decks属于用户简单,但属于用户的所有卡怎么办?

解决方法

评论中所述,hasManyThrough不支持此级别的特异性.您可以做的一件事是返回一个相反方向查询构建器实例:

//App\User;

public function cards()
{
    Card::whereHas('decks',function($q){
         return $q->whereHas('subjects',function($q){
            return $q->where('user_id',$this->id);
        });
    });
}

我们要从卡片 – >甲板 – >主题.主题应该一个user_id列,然后我们可以锁定.

用户模型调用时,会发生这种情况:

$user->cards()->get();

脚本宝典总结

以上是脚本宝典为你收集整理的php – 将hasManyThrough应用于更深层次的关系全部内容,希望文章能够帮你解决php – 将hasManyThrough应用于更深层次的关系所遇到的问题。

如果觉得脚本宝典网站内容还不错,欢迎将脚本宝典推荐好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。