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 - 关联未定义 - 尽管它看起来是 的相关文章

  • 将二进制数据从 C# 上传到 PHP

    我想将文件从 Windows C 应用程序上传到运行 PHP 的 Web 服务器 我知道 WebClient UploadFile 方法 但我希望能够分块上传文件 以便我可以监控进度并能够暂停 恢复 因此 我正在读取文件的一部分并使用 We
  • Doctrine2:入门教程“没有要处理的元数据类”

    我已经将本教程的第一部分运行了三遍 到目前为止 在这里或其他地方进行的大量搜索都无法帮助我使其发挥作用 我收到 没有要处理的元数据类 当我尝试时 php vendor bin doctrine orm schema tool update
  • 简单的颜色变化

    我正在创建一个用户界面 用户可以在其中更改页面的颜色值 我想要的是获取分配给其背景颜色的值并将其变亮一定程度 我只是想获得一条亮点线 而不必每次都制作新图像 示例 用户将背景颜色设置为 ECECEC 现在我希望某个元素边框变成 F4F4F4
  • PHP:是否可以从文件内容(字符串)创建 SplFileObject 对象?

    例如 contents file get contents image png 是否可以从 contents 创建 SplFileObject 对象 Thanks php 有一些特殊的流包装器 http www php net manual
  • 从 json 数组获取值并执行 sql 插入

    这是我的数组 json 1 Device ID a9a3346be4375a92 Date 2012 05 31 Time 15 22 59 Latitude 51 4972912 Longitude 0 1108178 2 Device
  • cakephp 1.1 与 php 5.3

    我刚刚从 php 5 1 升级到 5 3 之前在我的服务器上使用 cakephp 1 1 自从升级 或者可能更早 我不确定 以来 我收到以下错误 任何人都可以透露一些信息 Deprecated Assigning the return va
  • PHP语言问题

    我有一个 php 页面 它将邮件发送到特定电子邮件 其中包含此页面表单中的数据 邮件必须以网站的母语 阿拉伯语 发送 但是当我单击表单上的提交按钮时 收到的邮件一半可读 阿拉伯语 另一部分不可读 符号 我想知道如何解决这个问题并且能够发送邮
  • PHP:在多维数组中查找相同的键并合并结果

    我有一个多维数组 如下所示 array 0 gt array WS gt array id gt 2 name gt hello 1 gt array SS gt array id gt 1 name gt hello2 2 gt arra
  • Symfony 学说错误“DoctrineMigrationsBundle 需要启用 DoctrineBundle。”

    我创建了一个新的 Symfony 项目 并且不断收到此消息 DoctrineMigrationsBundle 需要启用 DoctrineBundle 错误并且无法摆脱它 显然我是这个星球上唯一一个收到此错误的人 因为谷歌并没有太大帮助 在
  • Laravel 5.6 - 注册表无法正常工作并且不显示任何错误

    在我最近的一个项目中 定制登记表不管用 当我单击注册按钮时 它会重新加载注册表单 不会打印任何错误 并且不会将数据插入数据库中 这是注册表的外观 这里是移民文件代码 public function up Schema create user
  • 在 Laravel 中按数据透视表 create_at 排序

    在我的数据库中 我有以下表格 courses id 名称 创建时间 更新时间 students id 名称 创建时间 更新时间 课程 学生 id course id student id created at updated at 我正在尝
  • Mongodb $push 嵌套数组

    我想向我的嵌套数组添加新数据 我的文档是 username erkin email email protected cdn cgi l email protection password b playlists id 58 name asd
  • 获取目录中最后修改的文件

    有没有办法只选择目录中的最后一个文件 扩展名jpg png gif 或者我是否必须解析整个目录并使用进行检查filemtime 是的 你必须通读它们 但由于目录访问已被缓存 因此您不必真正担心它 files array merge glob
  • 计算轮班工作时间并检测

    我有个问题 我的英语很差 我需要用PHP做一个加班计算 已经有一个代码可以实现这一点 但当工作时间超过2天时 计算就会出错 工作开始 2018 09 09 13 43 工作结束 2018 09 11 07 13 结果 07 18 04 00
  • 如何使用额外标记输出 wp_list_categories

    我目前正在使用下面的脚本在无序列表中输出我的所有 WordPress 类别 如何获得带有额外标记的输出 ul ul 例如 ul li Category 1 rsaquo li li Category 2 rsaquo li ul 代替 ul
  • 如何让Symfony2直接加载CSS、JS文件而不是通过PHP?

    老问题 请参阅下面的更新版本 我的开发环境不是最快的 每个 PHP 请求大约需要 500 毫秒 它开始成为 Symfony2 资源文件的问题 因为每个资源文件都是通过 Symfony 的内部控制器请求的 http localhost myp
  • 将单独的月、日和年值转换为时间戳

    我有月份值 1 12 日期值 1 31 和年份值 2010 2011 2012 我还有一个小时值和一个分钟值 我怎样才能把这个给strtotime 它可以以某种方式将其转换为时间戳吗 当您已经知道年月和日期时 为什么将字符串转换为日期 us
  • 如何检查号码是否是巴基斯坦用户的手机号码而不是固定电话号码

    我所做的是从开头删除 92 或 0092 并使用以下代码检查它是否是巴基斯坦人的有效手机号码 if preg match 3 0 4 0 9 number 1 Pakistani mobile number else not a pakis
  • MYSQL 的 Google OAuth 2.0 用户 ID 数据类型

    我正在实施 Google OAuth 2 0 并注意到 Google OAuth 返回的唯一用户 ID 是21位数字长的 我想大整数 20 足以满足这种需求 但我现在看到 Google OAuth 返回的用户 ID 的长度感到困惑 关于我应
  • PHP 文件上传帮助

    div align center div 这是我的代码

随机推荐

  • 使用 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