问题标签 [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.
cakephp - CakePHP 按数组过滤关联模型
我有模型:项目=>关键字
使用 HMBTM 关系(在两个模型中设置)。
关键字表充当树,即。关键字之间具有层次关系。
我正在使用可包含的行为。
用户选择关键字。
我希望返回的记录(项目)受所选关键字或该关键字的任何子项的限制。我正在尝试重用我的索引操作。如果未选择关键字,则呈现标准索引视图,如果选择了关键字,则查找所有子关键字,然后将返回的项目过滤到具有任何关键字 ID 的项目。
我曾尝试创建一组子(和原始)关键字 id,但我无法弄清楚如何让该数组成为我的查找操作中的过滤。
我试过使用:
其中 $childkeywords 是相关 id 的数组,使用 array_push 创建。但这不使用键值对,只使用每个 id 的 int 值。所以我认为它的结构不正确。
我觉得我想做一些很简单的事情,但感觉我离解决方案越来越远了。是否没有标准方法将记录限制为关联模型的 id 集合?
干杯
在 Paulo 的帮助下,我现在拥有:
但是使用类型内部并没有改变结果..
cakephp - 在 CakePHP 中为可包含添加条件
以前我依赖递归,但我没有得到一些解决方案,然后我发现 Containable 可以很好地解决这些问题。
我正在开发一个电影评论网站。在那我需要显示与特定类型相关的电影列表。
我有以下代码:
真正的问题从这里开始,我得到了所有的电影,即使它与“戏剧”类型无关。我哪里错了?
让我解释一下数据库表:
表:电影
表:流派
表:movie_genres
在这里你可以看到一个movie_id 有多个genre_id。我应该只得到mov1
,但我将两部电影都放在一个数组中。
~~编辑~~哎呀!!抱歉忘了提,我在MoviesController
. 所有 3 个表都有各自的控制器。所以请建议我可以使用哪个控制器。
编辑:2
型号:类型
型号:电影流派
cakephp - 如何最小化 CakePHP 中的“包含”查询?
我有三个模型,Users,Comments和Pages。
用户 有很多 评论,评论 属于 页面。
所有模型都使用该containable
行为,并且默认为recursive -1
.
如果我在Comments上调用find()
查询,其中包含请求包括Page模型的字段,这将使用单个查询正确返回结果,自动将Page表连接到用户。
如果我从User模型(包含 Comment和Comment.Page)调用一个类似的查询,结果是一个查询以获取Comments,然后是每个评论的查询以获取相关的Page。
有没有办法配置模型以保持 JOIN 优化?我假设相关模型( Comments )上的 belongsTo 声明将遵循主机模型(Users)。
更新
我应该澄清一下,我的问题使用了我实际案例研究的简化版本。虽然我需要的最小解决方案将包括这个初始模型 hasMany Model belongsTo Model结构,但我也在寻找一个或多个额外的belongsTo 模型的解决方案(虽然我会自动使用 LEFT JOIN,因为这将是可行的)。
php - CakePHP 包含的行为未按预期工作
我正在尝试从 2 级深的模型中检索特定字段。我正在使用容器行为,但未正确检索底层。
继承人的代码:
它返回的数组:
但是,与其给我业务类型 ID,我希望它返回 BusinessType url 字段。
谁能看到我哪里出错了?我确定这与 CakePHP 文档是一致的。
cakephp - CakePHP 的翻译行为不适用于 Containable
我已经实现了 CakePHP 的 Translate Behavior,一切都相当顺利,但我现在注意到,当我的模型应该被翻译时,我从i18n
表中翻译的数据不存在。contain()
翻译行为是否不适用于包含的模型?如果是这样,那不是几乎完全消除了这种行为的任何用处吗?(或者也许只是我 - 但我几乎所有事情都使用 Containable)。
如果我打算大量使用 Containable,是否有不同的“CakePHP 方式”可以相当轻松地进行翻译?
cakephp - 可包含的“包含”属性未重置
在以下代码中,可包含的行为与我在 CakePHP 2.1.2 中的预期不同:
从控制器调用函数时,我得到了意想不到的结果。test1()
显示预期的数组。test2()
显示来自 的相同数组test1
。如果我运行,test2()
那么test1()
我会得到预期的结果(大数组,然后是小数组)。
我尝试actAs
在模型中使用,而不是在每个函数中动态加载行为,但这并没有帮助。
如果我遗漏了一些简单的东西,我深表歉意。提前致谢!
cakephp - CakePHP 可包含的行为未触发
第一次使用 Cake 及其可包含的行为,但它没有按预期工作......或者根本没有。
我正在尝试获取产品的配件列表。产品型号 HABTM 产品(别名“ProductRelation”)。连接表是 products_products,它有两个产品 ID - product_id 和 related_id。与此相反,我想为给定的 product_id 提取附件列表(从 related_id 列驱动的产品)
在我的产品模型中,我添加了 $actsAs = array('Containable');
在我的控制器中,即使没有条件,使用食谱中的参考对可包含的快速测试也根本无法包含产品。
..返回数据库中每个产品的数组,以及所有相关模型 - 图像、内容选项卡、评级、评论、定价等我没有尝试对此应用任何“条件”,因为所写的调用应该将数据限制为根据食谱,产品及其 ProductRelation 数据...
有小费吗?
cakephp - 包含在 HABTM 中的 CakePHP
为了解释我遇到的问题,我将使用一个示例。假设我正在构建一个系统,学生可以在其中注册一个或多个课后课程,但学校官员必须批准注册才能使其有效。所以我有这些模型:
- 课程(属于“老师”,hasAndBelongsToMany“学生”)
- 学生(hasAndBelongsToMany“课程”)
- 老师(有很多“课程”)
现在假设我想查看所有针对九年级学生的未批准注册的列表。这很容易:
我正在努力解决的问题是同时提取教师的数据(不仅仅是他们的 ID)。我试过这个:
但它对返回的数组没有任何影响。为了方便您将其放入现有的 CakePHP 项目中进行使用,这里是数据库模式和数据,这里是您可以粘贴到现有 CakePHP 项目的随机操作中的内容。这就是我想要得到的(注意老师的数据在那里):
谢谢!
cakephp - 如何让 CakePHP 2.2.4 包含并返回 4 级关联的数据?
我有四个模型(Location->StatisticCategory->StatisticItem->Statistic),我试图在单个查询中返回它们。结果与预期一致,直到查询在 Location 级别开始。此时,数据返回包含 StatisticItem 中直到第三个关联的所有内容,但每个 Statistic 都为空。知道为什么第 4 级关联(至少在这里)没有返回任何数据吗?
下面是我在我的 StatisticsController 中使用的代码,在 AppModel 中打开了 Containable 行为:
php - 使用 CakePHP 分页和可包含行为创建复杂条件
我正在使用可包含的行为来查看几个表。
这按预期工作。但是,我将它与 jQuery 数据表和数据表传递条件的方式集成,它没有指定字段。所以我想像这样在包含之外做条件......
当然这是不可能的,因为可包含行为希望您将条件包含在包含数组中的表键下。这令人沮丧,是否有人有解决此问题的解决方案或解决方法?
我正在使用 CakePHP 2.x