首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

WhereHas不工作,在中有许多关系

WhereHas是Laravel框架中用于查询关联模型的方法。当我们在使用WhereHas时,可能会遇到一些问题。

首先,我们需要确保模型之间确实存在关联关系。在Laravel中,关联关系可以通过在模型之间定义关联方法来实现。例如,在两个模型之间建立一对多关系,我们可以在父模型中定义一个hasMany方法,然后在子模型中定义一个belongsTo方法。只有在模型之间正确地定义了关联关系,才能使用WhereHas进行查询。

其次,我们需要确保WhereHas方法中的查询条件是正确的。WhereHas接受两个参数:关联的方法名和一个闭包函数。闭包函数中可以指定关联模型的查询条件。如果WhereHas不起作用,可能是闭包函数中的查询条件有误。我们需要仔细检查闭包函数中的条件是否正确,并且确保与关联模型的字段匹配。

此外,WhereHas方法只返回满足条件的父模型,而不会加载关联模型的数据。如果需要加载关联模型的数据,可以结合使用with方法来实现。通过with方法,我们可以在WhereHas的基础上使用Eager Loading机制,一次性加载所有满足条件的父模型及其关联模型的数据。

最后,WhereHas方法可以在许多关系中使用,包括一对一、一对多、多对多和多态关系等。无论是哪种关系,都可以通过WhereHas方法进行查询。

总结:在使用Laravel框架的WhereHas方法时,我们需要确保模型之间正确定义了关联关系,闭包函数中的查询条件正确,结合使用with方法进行数据加载,并且可以在各种关系中使用WhereHas方法进行查询。

参考链接:

  • Laravel关联查询文档:https://laravel.com/docs/8.x/eloquent-relationships
  • Laravel Eager Loading文档:https://laravel.com/docs/8.x/eloquent-relationships#eager-loading
页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

day30_Hibernate复习_02(补刀)

对象的三种状态:     瞬时态:对象刚刚创建,没有与session关联,没有ID     持久态:已经和Session关联,有ID     游离态:没有和session关联,有ID     瞬时=>持久   save/persist     瞬时=>游离   setId     持久=>游离   close/evict/clear     持久=>瞬时   close/evict/clear 再 将ID设置为null     游离=>瞬时   将ID设置为null     游离=>持久   update/saveOrUpdate 持久状态的特性:持久对象的所有变化,会被自动同步到数据库中。 一级缓存:     Hibernate中有两种缓存:线程级别的session缓存 和 进程级别的sessionFactory缓存(不久就会学到啦)   在Session对象中,有一个缓存。 本质:Map集合、键是ID、值是对象,Hibernate会把所有查询到的对象,放入缓存中。         如果再次查询相同的对象,会先从缓存中找。目的:为了提高效率。 快照:快照是为了对比缓存中的对象是否发生变化,来决定事务提交时,是否需要修改数据。 其他api:     evict();    将缓存中的对象移除     clear();    清空一级缓存     refresh(Object);    刷新 => 强制刷新缓存中的对象 => (可以用来解决缓存与数据库数据不同步的问题(局部解决))     flush();    对比快照,并提交缓存对象     saveOrUpdate(Object);    可以同时完成保存或更新操作     save/persist     HQL/SQL/Criteria与缓存的关系 => 查询到的对象会放入缓存中,但是每次查询都要发送sql语句。

02

CIKM'21 多关系图神经网络的社区问答

为了研究像Stack Overflow这样的社区问答(CQA)平台,人们提出了各种数据挖掘任务。这些任务之间的相关性通过多任务学习(MTL)为彼此提供了有用的学习信号。然而,由于这些任务的高度异质性,很少有现有的工作能够在一个统一的框架中共同解决它们。为了解决这一难题,我们开发了一种基于多关系图的MTL模型——异构多任务图同构网络(Heterogeneous Multi-Task graph Isomorphism Network, HMTGIN),该模型有效地解决了异构CQA任务。在每次训练前向传递中,HMTGIN通过图同构网络的扩展和跳跃连接嵌入输入的CQA论坛图。嵌入然后在所有特定任务的输出层共享,以计算各自的损失。此外,利用两个基于任务关系领域知识的跨任务约束对联合学习进行正则化。在评估中,嵌入在不同的任务特定的输出层之间共享,以做出相应的预测。据我们所知,HMTGIN是第一个能够从多关系图的角度处理CQA任务的MTL模型。为了评估HMTGIN的有效性,我们从Stack Overflow中构建了一个具有200多万个节点的大规模多关系图CQA数据集。大量实验表明: (1) HMTGIN在5个任务上优于所有基线; (2) 提出的MTL策略和跨任务约束具有显著优势。

01
领券