问题标签 [containable]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
2 回答
986 浏览

cakephp - CakePHP 按数组过滤关联模型

我有模型:项目=>关键字

使用 HMBTM 关系(在两个模型中设置)。

关键字表充当树,即。关键字之间具有层次关系。

我正在使用可包含的行为。

用户选择关键字。

我希望返回的记录(项目)受所选关键字或该关键字的任何子项的限制。我正在尝试重用我的索引操作。如果未选择关键字,则呈现标准索引视图,如果选择了关键字,则查找所有子关键字,然后将返回的项目过滤到具有任何关键字 ID 的项目。

我曾尝试创建一组子(和原始)关键字 id,但我无法弄清楚如何让该数组成为我的查找操作中的过滤。

我试过使用:

其中 $childkeywords 是相关 id 的数组,使用 array_push 创建。但这不使用键值对,只使用每个 id 的 int 值。所以我认为它的结构不正确。

我觉得我想做一些很简单的事情,但感觉我离解决方案越来越远了。是否没有标准方法将记录限制为关联模型的 id 集合?

干杯

在 Paulo 的帮助下,我现在拥有:

但是使用类型内部并没有改变结果..

0 投票
1 回答
12766 浏览

cakephp - 在 CakePHP 中为可包含添加条件

以前我依赖递归,但我没有得到一些解决方案,然后我发现 Containable 可以很好地解决这些问题。

我正在开发一个电影评论网站。在那我需要显示与特定类型相关的电影列表。

我有以下代码:

真正的问题从这里开始,我得到了所有的电影,即使它与“戏剧”类型无关。我哪里错了?

让我解释一下数据库表:

表:电影

表:流派

表:movie_genres

在这里你可以看到一个movie_id 有多个genre_id。我应该只得到mov1,但我将两部电影都放在一个数组中。

~~编辑~~哎呀!!抱歉忘了提,我在MoviesController. 所有 3 个表都有各自的控制器。所以请建议我可以使用哪个控制器。

编辑:2

型号:类型

型号:电影流派

0 投票
5 回答
1599 浏览

cakephp - 如何最小化 CakePHP 中的“包含”查询?

我有三个模型,UsersCommentsPages

用户 有很多 评论评论 属于 页面

所有模型都使用该containable行为,并且默认为recursive -1.

如果我在Comments上调用find()查询,其中包含请求包括Page模型的字段,这将使用单个查询正确返回结果,自动将Page表连接到用户。

如果我从User模型(包含 CommentComment.Page)调用一个类似的查询,结果是一个查询以获取Comments,然后是每个评论的查询以获取相关的Page

有没有办法配置模型以保持 JOIN 优化?我假设相关模型( Comments )上的 belongsTo 声明将遵循主机模型(Users)。

更新

我应该澄清一下,我的问题使用了我实际案例研究的简化版本。虽然我需要的最小解决方案将包括这个初始模型 hasMany Model belongsTo Model结构,但我也在寻找一个或多个额外的belongsTo 模型的解决方案(虽然我会自动使用 LEFT JOIN,因为这将是可行的)。

0 投票
3 回答
1363 浏览

php - CakePHP 包含的行为未按预期工作

我正在尝试从 2 级深的模型中检索特定字段。我正在使用容器行为,但未正确检索底层。

继承人的代码:

它返回的数组:

但是,与其给我业务类型 ID,我希望它返回 BusinessType url 字段。

谁能看到我哪里出错了?我确定这与 CakePHP 文档是一致的。

0 投票
2 回答
1861 浏览

cakephp - CakePHP 的翻译行为不适用于 Containable

我已经实现了 CakePHP 的 Translate Behavior,一切都相当顺利,但我现在注意到,当我的模型应该被翻译时,我从i18n表中翻译的数据不存在。contain()

翻译行为是否不适用于包含的模型?如果是这样,那不是几乎完全消除了这种行为的任何用处吗?(或者也许只是我 - 但我几乎所有事情都使用 Containable)。

如果我打算大量使用 Containable,是否有不同的“CakePHP 方式”可以相当轻松地进行翻译?

0 投票
1 回答
131 浏览

cakephp - 可包含的“包含”属性未重置

在以下代码中,可包含的行为与我在 CakePHP 2.1.2 中的预期不同:

从控制器调用函数时,我得到了意想不到的结果。test1()显示预期的数组。test2()显示来自 的相同数组test1。如果我运行,test2()那么test1()我会得到预期的结果(大数组,然后是小数组)。

我尝试actAs在模型中使用,而不是在每个函数中动态加载行为,但这并没有帮助。

如果我遗漏了一些简单的东西,我深表歉意。提前致谢!

0 投票
1 回答
377 浏览

cakephp - CakePHP 可包含的行为未触发

第一次使用 Cake 及其可包含的行为,但它没有按预期工作......或者根本没有。

我正在尝试获取产品的配件列表。产品型号 HABTM 产品(别名“ProductRelation”)。连接表是 products_products,它有两个产品 ID - product_id 和 related_id。与此相反,我想为给定的 product_id 提取附件列表(从 related_id 列驱动的产品)

在我的产品模型中,我添加了 $actsAs = array('Containable');

在我的控制器中,即使没有条件,使用食谱中的参考对可包含的快速测试也根本无法包含产品。

..返回数据库中每个产品的数组,以及所有相关模型 - 图像、内容选项卡、评级、评论、定价等我没有尝试对此应用任何“条件”,因为所写的调用应该将数据限制为根据食谱,产品及其 ProductRelation 数据...

有小费吗?

0 投票
1 回答
3346 浏览

cakephp - 包含在 HABTM 中的 CakePHP

为了解释我遇到的问题,我将使用一个示例。假设我正在构建一个系统,学生可以在其中注册一个或多个课后课程,但学校官员必须批准注册才能使其有效。所以我有这些模型:

  • 课程(属于“老师”,hasAndBelongsToMany“学生”)
  • 学生(hasAndBelongsToMany“课程”)
  • 老师(有很多“课程”)

现在假设我想查看所有针对九年级学生的未批准注册的列表。这很容易:

我正在努力解决的问题是同时提取教师的数据(不仅仅是他们的 ID)。我试过这个:

但它对返回的数组没有任何影响。为了方便您将其放入现有的 CakePHP 项目中进行使用,这里是数据库模式和数据,这里是您可以粘贴到现有 CakePHP 项目的随机操作中的内容。这就是我想要得到的(注意老师的数据在那里):

谢谢!

0 投票
1 回答
194 浏览

cakephp - 如何让 CakePHP 2.2.4 包含并返回 4 级关联的数据?

我有四个模型(Location->StatisticCategory->StatisticItem->Statistic),我试图在单个查询中返回它们。结果与预期一致,直到查询在 Location 级别开始。此时,数据返回包含 StatisticItem 中直到第三个关联的所有内容,但每个 Statistic 都为空。知道为什么第 4 级关联(至少在这里)没有返回任何数据吗?

下面是我在我的 StatisticsController 中使用的代码,在 AppModel 中打开了 Containable 行为:

0 投票
1 回答
206 浏览

php - 使用 CakePHP 分页和可包含行为创建复杂条件

我正在使用可包含的行为来查看几个表。

这按预期工作。但是,我将它与 jQuery 数据表和数据表传递条件的方式集成,它没有指定字段。所以我想像这样在包含之外做条件......

当然这是不可能的,因为可包含行为希望您将条件包含在包含数组中的表键下。这令人沮丧,是否有人有解决此问题的解决方案或解决方法?

我正在使用 CakePHP 2.x