php - 检查模型 C 是否与任何与模型 A 相关的模型 B 相关

标签 php mysql laravel laravel-4 eloquent

我知道这看起来很复杂,但我会解释的。

  • 我有 3 个模型,我们称它们为 A、B 和 C。
  • 所有这些都可以通过多对多关系与其他人相关。

我想检查模型 C 是否与任何与我的模型相关的模型 B 相关。

我想通过模型 C 的“名称”列而不是 ID 来检查它。

最佳答案

编辑:

在 irc 上进行了一些挖掘和询问后,我发现我以前的方法根本不是处理这个问题的正确方法:)

感谢@Oddman 和@Kindari 对讨论的积极投入——如建议的那样,要测试两个“多对多模型”A 和 B 是否相关,您可以使用列表方法 (Illuminate\Support\Collection)

in_array($b->id, $a->related()->lists('b_id'))

如果接下来您想通过“名称”检查 C 是否与 B 相关,您能否提供有关如何在关系中使用此列的详细信息 - 您是否将其显示在数据透视表中?如果是这样,也许你可以试试下面的方法——但这只是我的一个疯狂猜测……

in_array($c->name, $b->related()->lists('c_name'))

除上述之外,您始终可以使用适当的连接执行原始 sql 查询,这是使其正常工作的可靠方法。您可以从@NDM 建议的地方开始。

查看文档当然也是一件好事:
http://four.laravel.com/docs/eloquent#many-to-many
http://four.laravel.com/docs/eloquent#working-with-pivot-tables

关于php - 检查模型 C 是否与任何与模型 A 相关的模型 B 相关,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18701172/

相关文章:

php - 如何在 PHP 中格式化包含不同格式的文件中的日期?

php - 如何添加 1 个表中多行中的多列以及另一个表中的 1 行?

php - 拉维尔 5 : Installing ide helper for Netbeans

javascript - 如何将从数据库中提取的数字传递到 javascript 数据部分?

php - 设计彼此相关的mysql表的最佳方法是什么?

php - 相同的哈希多个图像

javascript - 将来自 ajax 调用的 PHP 链接数据发送到不同的页面 onclick

php - 两个顺序 SELECT 表的最佳方法

php - 升级到 laravel 5.8 后数据库访问错误

php - 具有与 SQL Server 的 Laravel 连接的 Azure Web 应用程序