CakePHP 3 - 关联未定义 - 尽管它看起来是

2023-12-25

我使用 CakePHP 3.7 烘焙了一个遗留应用程序

数据库包含3张表,如下:regulations, groups, filters。就应用程序而言,层次结构是:

  • Regulations
    • Groups
      • Filters

表架构如下:

mysql> describe regulations;
+-------+---------------------+------+-----+---------+----------------+
| Field | Type                | Null | Key | Default | Extra          |
+-------+---------------------+------+-----+---------+----------------+
| id    | tinyint(3) unsigned | NO   | PRI | NULL    | auto_increment |
| name  | varchar(255)        | NO   |     | NULL    |                |
| label | varchar(255)        | NO   |     | NULL    |                |
+-------+---------------------+------+-----+---------+----------------+
4 rows in set (0.09 sec)

mysql> describe groups;
+---------------+-----------------+------+-----+---------+----------------+
| Field         | Type            | Null | Key | Default | Extra          |
+---------------+-----------------+------+-----+---------+----------------+
| id            | int(4) unsigned | NO   | PRI | NULL    | auto_increment |
| name          | varchar(255)    | NO   |     | NULL    |                |
| regulation_id | int(4) unsigned | NO   | MUL | NULL    |                |
| label         | varchar(255)    | NO   |     | NULL    |                |
+---------------+-----------------+------+-----+---------+----------------+
4 rows in set (0.03 sec)

mysql> describe filters;
+----------+----------------------+------+-----+---------+----------------+
| Field    | Type                 | Null | Key | Default | Extra          |
+----------+----------------------+------+-----+---------+----------------+
| id       | smallint(5) unsigned | NO   | PRI | NULL    | auto_increment |
| name     | varchar(100)         | NO   |     | NULL    |                |
| label    | text                 | NO   |     | NULL    |                |
| group_id | int(4) unsigned      | NO   | MUL | NULL    |                |
+----------+----------------------+------+-----+---------+----------------+

因此,当我烘焙应用程序时,我得到了以下表类关系。全部都在里面initialize() method:

// RegulationsTable.php
$this->hasMany('Groups', [
        'foreignKey' => 'regulation_id'
    ]);

// GroupsTable.php
$this->belongsTo('Regulations', [
        'foreignKey' => 'regulation_id',
        'joinType' => 'INNER'
    ]);
    $this->hasMany('Filters', [
        'foreignKey' => 'group_id'
    ]);

 // FiltersTable.php
 $this->belongsTo('Groups', [
        'foreignKey' => 'group_id',
        'joinType' => 'INNER'
    ]);

在我看来,这似乎是正确的,因为就架构而言,这些是关系。

但是,当我尝试在控制器中执行此操作时:

$regulations = TableRegistry::getTableLocator()->get('Regulations');
$data = $regulations->find('all')->contain(['Groups', 'Filters']);
$data = $data->toArray();
debug($data);

它给出了一个错误:

法规中没有定义过滤器协会。

嗯,显然。因为其关联是通过组处理的(GroupsTable.php) 模型。没有direct过滤器和调节器之间的关系;它必须通过组进行。

请有人建议烘焙模型有什么问题,这样就不会产生错误?

对于背景信息:用例是获取数据列表(特别是label来自每个表)以分层格式(法规-->组-->过滤器)。


None

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

CakePHP 3 - 关联未定义 - 尽管它看起来是 的相关文章

  • php 错误 fopen(): 文件名不能为空

    发送带有附件代码的电子邮件工作正常 最近我们已将文件传输到另一个托管服务器 idk 发生了什么 它显示以下错误 警告 fopen 第 106 行 home hugerecruitmetnt public html validatecva p
  • 标准化 UTF-8 到底是什么?

    The 重症监护室项目 http userguide icu project org transforms normalization 现在也有一个PHP库 http us php net manual en class normalize
  • 内部 while 循环不工作

    这是我项目网页上的代码片段 这里我想显示用户选择的类别 然后想显示属于该类别的主题 在那里 用户可以拥有多个类别 这没有问题 我可以在第一个 while 循环中打印所有这些类别 问题是当我尝试打印主题时 结果只显示一行 但每个类别中有更多主
  • 为什么 Composer 降级了我的包?

    php composer phar update这样做了 删除了 2 3 0 软件包并安装了整个 2 2 5 Zend Framework php composer phar update Loading composer reposito
  • 无法显示 Laravel 欢迎页面

    我的服务器位于 DigitalOcean 云上 我正在使用 Ubuntu 和 Apache Web 服务器 我的家用计算机运行的是 Windows 7 我使用 putty 作为终端 遵循所有指示https laracasts com ser
  • 在 PHP 中使用 Curl 将获取字段附加到 URL

    我可以使用 Curl 执行服务器端和客户端重定向 但无法通过 get 请求将 GET 字段附加到 URL 这是我的代码 post curl init curl setopt post CURLOPT URL url curl setopt
  • “空合并”(??) 运算符的用途是什么? [关闭]

    Closed 这个问题正在寻求书籍 工具 软件库等的推荐 不满足堆栈溢出指南 help closed questions 目前不接受答案 随着新的 PHP 版本 PHP 7 的发布 引入了新功能 这些新功能中有一个我不熟悉的操作符 这Nul
  • 我可以使用 WGET 生成给定 URL 的网站的站点地图吗?

    我需要一个可以抓取网站并以纯文本或类似格式返回所有已抓取页面的列表的脚本 我将把它作为站点地图提交给搜索引擎 我可以使用 WGET 生成网站的站点地图吗 或者有没有一个 PHP 脚本可以做同样的事情 wget spider recursiv
  • phpspreadsheet setCellValue 未写入

    我正在上传一个 Excel 文件 读取内容并使用 phpspreadsheet 写入一个新的 Excel 文件 我正在尝试创建一个 Excel 文件 我正在使用以下代码写入单元格 writesheet gt setActiveSheetIn
  • WordPress Tax_query“和”运算符未按预期运行

    我有一个自定义帖子类型image自定义分类法称为图片标签 它像类别一样分层 以下是可能使用的标签的一些示例 Structure id 25 House id 56 Skyscraper Nature Animal Plant id 41 因
  • PHP表单提交后如何显示成功消息?

    这是代码 我想要这样 表单提交 gt page2 php gt 重定向 gt page1 php 这是消息 弹出窗口或其他内容 page1 php
  • 如何从MySQL数据库获取今天/昨天的数据?

    我想从数据库中检索今天的数据 但我不知道该怎么做 我实际上想要获取不是过去 24 小时的数据 我只想获取今天的数据 因此基于实际服务器时间 我还想获取昨天的数据 谁能帮我怎么做 示例代码 SELECT id FROM folk WHERE
  • 无法使用 php 将大文件上传到服务器

    我无法将大文件加载到服务器 问题出在该文件中 FILES filename tmp name 如果文件稍大于 2mb 则为空 我尝试更改 php ini 中的变量 upload max filesize 700M post max size
  • 将 Javascript 变量转换为 PHP 变量

    我想使用由 videoel getCurrentTime 函数返回给我的 javascript 变量 并将其转换为 php 变量 以便我能够将其添加到我的 SQL 插入查询中 例如 INSERT INTO tblData VALUES ph
  • “yum install php”需要 httpd-mmn = 20051115

    我从源代码安装了 httpd apache 2 4 6 现在我想安装 PHP 但yum install php吐出错误 Error Package php 5 3 3 40 el6 6 x86 64 updates Requires htt
  • 如何从表中选择所有偶数 id?

    我想从 MySQL 数据库的表中选择所有甚至帖子 ID 然后显示它们 我还想获取所有带有奇怪 id 的帖子并将它们显示在其他地方 我想使用 PHP 来完成此操作 因为这是我使用的服务器端语言 或者 我是否必须选择所有帖子 然后使用 Java
  • 在 PHP 中将对象作为参数传递[关闭]

    就目前情况而言 这个问题不太适合我们的问答形式 我们希望答案得到事实 参考资料或专业知识的支持 但这个问题可能会引发辩论 争论 民意调查或扩展讨论 如果您觉得这个问题可以改进并可能重新开放 访问帮助中心 help reopen questi
  • CodeIgniter PHP 模型访问“无法找到您指定的模型”

    我一直在尝试为我正在构建的这个网站加载一些模型 但不知道什么原因 会带来如下错误 An Error Was Encountered Unable to locate the model you have specified logon mo
  • 如何将自托管 WordPress 和已安装的实时站点插件升级到最新可用版本而不遇到任何麻烦?

    我必须升级正在运行的 WordPress 网站的 WordPress CMS 和一些已安装的插件 并且我想要升级的一些插件之前已被修改以实现某些目标 http easycaptures com fs uploaded 288 9522279
  • 如何调试 Silex 框架中的 php 致命错误

    我想知道如何看到这样的语法错误 缺少分号 这将导致 WSOD 白屏死机 我尝试包含一个调试配置文件 如下所示 use Symfony Component Debug ErrorHandler use Symfony Component De

随机推荐

  • 使用 document.getElementById 注入元素在 Javascript 中不起作用

    我已经编写了一小段 JavaScript 代码 现在需要将结果注入到我的 HTML 中 我已经检查了 windows 元素 甚至复制了该元素的特定选择器 但它仍然没有将答案注入其中 我正在尝试将其插入 HTML 代码中的 span 标记中
  • HTML Agility 包创建新的 HTMLNode

    我正在使用 HTML Agility Pack 来解析和转换 HTML 文件 但由于索引参数而尝试创建新的 HTMLNode 时 出现 项目已添加 异常 HtmlNode node1 new HtmlNode HtmlNodeType El
  • 如何为 AWS V3 Dynamodb 客户端设置超时

    我已经开始在我的一些服务中使用新的 AWS 版本 3 sdk 不幸的是 并不总是清楚如何使用版本 2 sdk 中提供的模块化版本 3 代码中的某些功能 要为非模块化 sdk 设置超时 您可以执行以下操作 AWS config update
  • STS 3.4.0 与 Websphere 8.5.5.0 不部署我的应用程序

    我尝试从 Eclipse 将我的应用程序部署到 WebSphere 上 这里有一些条件 STS 3 4 0 Websphere 插件 适用于 Kepler Luna 的 IBM WebSphere Application Server V8
  • Solr:基于字段的存在进行提升,忽略该字段的内容

    我想根据文档中某个字段的存在来增强查询 而不管该字段的内容如何 假设某个文档有一个包含照片 id 值的字段 我希望在搜索时首先出现包含照片的文档 照片 ID 值与搜索查询无关 但该字段的存在才是重要的 怎么做 如上所述here http w
  • 在 Yii 中从数据库生成树

    我在 Yii 中有一个模型 它代表一棵树 具有以下 MySQL 表 CREATE TABLE IF NOT EXISTS nodes id int 11 NOT NULL AUTO INCREMENT node varchar 255 NO
  • 如何停止 UIView 可能不响应选择器的警告

    我有一个具有 UIView 作为属性的类 有时我会传入一个 UILabel 有时是 UITextField 无论我传入哪个 我都希望班级设置文本 目前我正在这样做 它有效 if self viewToUpdate respondsToSel
  • 是否可以获得MySQL所有系统函数的列表?

    我看起来像 SHOW FUNCTION STATUS 获取当前服务器版本的所有可用系统功能的列表 可以得到这样的表here http dev mysql com doc refman 5 6 en string functions html
  • 如何对命名空间中的模型执行 has_many

    Rails 3 为我们提供了这些漂亮的生成器 可以将模型和控制器放入命名空间中 哇 但现在我无法将它们与其他模型联系起来 我试图通过与命名空间模型关联来实现 has many 我已经在互联网上搜索了几天 但还没有想出任何例子 app mod
  • 嵌入式 Python 3.5“python setup.py Egg_info”失败,错误代码为 1

    我正在尝试 pip install PyAutoGUI 以及其他模块 但收到以下错误 Collecting pyautogui Using cached PyAutoGUI 0 9 35 zip Complete output from c
  • 为什么被删除:ASP.NET MVC CheckBoxList(没有MVCContrib)

    为什么是复选框列表从 ASP NET MVC 预览版本 5 中删除 目前 我没有看到任何可以创建复选框列表 具有相似名称但不同 id 的方法 以便人们可以从列表中选择 0 1 更多选项 有一个CheckBoxList列表存在于 MVCCon
  • 使用 python 更新 CKAN 中的资源

    我正在尝试更新 CKAN 的一个实例中的资源 我正在使用 demo ckan org 进行一些测试 我可以使用以下命令创建和更新数据集的资源curl 但是使用 python 我无法做到这一点 我的起点是这个链接 http docs ckan
  • 设置 Windows 文件共享的权限

    我有以下代码 该代码应该遍历文件共享中的文件夹并将其中的任何权限转换为读取权限 但是 存在一个问题 它不会替换已有的权限 而只是添加到其中 其次 如果该文件夹没有继承权限 则会给出错误消息 Set Acl 进程不拥有此操作所需的 SeSec
  • 将 utf-16 字符串传递给 Windows 函数

    我有一个名为 some dll 的 Windows dll 具有以下功能 void some func TCHAR input string some func 需要一个指向 utf 16 编码字符串的指针 运行这个Python代码 fro
  • 按经纬度查找电话区号

    寻找一种方法来获取给定纬度和经度的电话区号列表 如果需要 还可以提供给定的国际代码 请注意 我不是在谈论国际拨号前缀 而是在谈论其中的区号 例如 科罗拉多州丹佛市的区号为 303 和 720 其位置为 39 739 104 985 位于 N
  • Kotlin:如何从另一个 IntelliJ 模块导入类?

    我在 IntelliJ 中有一个简单的 Kotlin 项目 其中两个模块定义为项目根文件夹下的子文件夹 一切似乎都在构建设置中正确设置 每个模块都有自己的文件夹标记为源目录 我可以在两个模块中运行主要功能 因此 IntelliJ 发现一切正
  • mongodb 上的多重求和/计数(性别总和以及所有结果总计)

    我有这个文件 gender male gender male gender female gender female gender female 所以 我需要像这样检索 total 5 male 2 female 3 我的实际查询 没有工作
  • 使用react-leaflet在标记内实现动态JSX元素

    我有一个正在使用的 React 应用程序Leaflet http leafletjs com 通过反应传单 https github com PaulLeCam react leaflet 两个超级有用的库 在这个应用程序中 我有一组需要渲
  • React Native 0.61.5 Crashlytics 缺少 libhermes.so:SoLoader.java com.facebook.soloader.SoLoader.assertInitialized

    我正在构建一个React Native应用程序 一切正常 直到我决定从版本 0 59 x 升级到v 0 61 5 当我尝试在 Play 商店中发布我的应用程序时 我收到了很多崩溃报告Firebase Crashlytics https in
  • CakePHP 3 - 关联未定义 - 尽管它看起来是

    我使用 CakePHP 3 7 烘焙了一个遗留应用程序 数据库包含3张表 如下 regulations groups filters 就应用程序而言 层次结构是 Regulations Groups Filters 表架构如下 mysql