Kohana 3.3 ORM _has_many _belongs_to

2023-12-19

我正在尝试使用内置的 ORM 在 Kohana 3.3 中设置产品对象。我想要这样,当我打电话时:

    $p1 = ORM::factory('product')
        ->where('product_type', '=', '1')
        ->find_all();

它将创建一个具有以下结构的对象:

Model_Product Object
(
    [_long_list_of_kohana_properties] => Array ()
    [_object:protected] => Array
        (
            [id] => 2
            [product_type] => 1
            ...
            [product_attributes] => Array (List of attributes)
        )
)

目前,它生产的是:

Model_Product Object
(
    [_long_list_of_kohana_properties] => Array ()
    [_object:protected] => Array
        (
            [id] => 2
            [product_type] => 1
            ...
        )
)

这是对象和 _has_many / _belongs_to 的相关代码:

class Model_Product extends ORM
{
    protected $_db = 'default';
    protected $_table_name  = 'product';
    protected $_primary_key = 'id';

    protected $_table_columns = array(
        'id',
        'product_type',
        ...
    );

    protected $_has_many = array(
        'product_attributes'    => array(
            'model' => 'productAttributes',
            'foreign_key' => 'product_id',
            'far_key' => 'id',
        )
    );
}

class Model_ProductAttribute extends ORM
{
    protected $_db = 'default';
    protected $_table_name  = 'productAttributes';
    protected $_primary_key = 'id';

    protected $_table_columns = array(
        'id',
        'product_id',
        'attribute_name',
        'attribute_value',
    );

    protected $_belongs_to = array('product' => array(
            'model' => 'product',
            'foreign_key' => 'product_id',
            'far_key' => 'product_id',
        )
    );
}

我似乎无法获得foreign_key 和far_key 值的正确组合来完成这项工作...此外,我找不到“far_key”用途的良好解释。如果有人可以解释外国与远方可能会解决这个问题,哈哈。

关于我可能会搞砸的地方有什么建议吗?

先感谢您。


Foreign key是钥匙this目的。其中包含有关关系的数据。

Far key是关键other目的。其中包含有关关系的数据。那把钥匙“很远”

In a has_many关系中,其他对象“属于”该对象。这些对象上有一个键,它指的是this。就这样far key应该'product_id'并且外键对这种关系没有影响。因为没有(也不可能有)钥匙this指向数千个属性对象的对象。因此:

class Model_Product extends ORM {

    protected $_has_many = array(
        'product_attributes'    => array(
        'model' => 'productAttributes',
        'far_key' => 'product_id',
    ));
}

In a belongs_to关系。this对象上有一个指向它的键parent(管他呢)。因此本地密钥(foreign_key) 应该product_idfar_key对这种关系没有影响。因为另一个对象上没有(也不可能有)指向其所有子对象的键。因此:

class Model_ProductAttribute extends ORM {

    protected $_belongs_to = array('product' => array(
        'model' => 'product',
        'foreign_key' => 'product_id',
        'far_key' => 'product_id',
    ));
}

我希望这能回答你的问题。我也花了一段时间才弄清楚。

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

Kohana 3.3 ORM _has_many _belongs_to 的相关文章

  • 哪个 ORM 支持这个

    我有一个可选的查询部分 需要在特定条件下执行 这是示例代码 int cat 1 int UserID 12 string qry select from articles if cat gt 0 qry where categoryID c
  • Django ORM:我如何实时查看最后执行的查询

    假设我们有一个使用 django orm 的简单查询 filterd User objects exclude id request user id filter username data username 这应该返回一些对象 但它没有返
  • Hibernate 注释上分配的生成器类

    这里是休眠新手 我正在研究一个简单的 Hibernate 映射文件 当我使用 xml 方法时 我将生成器类设置为分配 在分配员工 ID 之前必须检查某些逻辑 因此我无法生成它 自动地
  • 获取 JPA 本机插入查询生成的标识符

    出于性能原因 我需要使用一些本机查询将新对象插入数据库 我有一个非常复杂的 JPA 持久层 它管理我通常的实体读写 我想使用这个持久层来运行本机查询 我知道我需要方法 EntityManager createNativeQuery Stri
  • 为什么 SQLAlchemy/associationproxy 重复我的标签?

    我正在尝试在与标签非常相似的情况下使用关联代理文档中的示例 http www sqlalchemy org docs 05 reference ext associationproxy html 这是我的架构的一个子集 它是一个博客 使用声
  • 我可以对未映射到表的实体使用 Hibernate 查询语言吗?

    以下是我用来检索的 mySQL 查询HolidayPackages for a given Hotel SELECT pkg idHolidayPackage pkg name FROM holidaypackage pkg INNER J
  • Spring & Hibernate SessionFactory - 从宕机的服务器中恢复

    因此 在春季之前 我们使用了 HibernateUtil 版本 如果成功建立原始 JDBC 连接 它会缓存 SessionFactory 实例 否则抛出 SQLException 这使我们能够从由于身份验证或服务器连接问题而导致的 Sess
  • ORM 是用于迁移数据的正确工具吗?

    背景 我们正在升级旧版导入工具 它的作用是将数据从连接到 SQL Server 的一个数据库移动到同一服务器上的第二个数据库 并使用不同的模式沿途执行转换和映射 这是一个帮助解释正在发生的事情的示例 假设源数据库有一张表名为Client I
  • Symfony ArrayCollection 与 PersistentCollection

    据我了解 当您通过存储库查询数据库时 您会得到 PersistentCollection 而当您使用实体时 您会得到 ArrayCollection 因此 考虑到我的用户实体有一对多的自引用关系 在我的用户实体中 我有一个 setChild
  • 是否有任何 mongodb ORM 允许您为字段添加别名?

    我刚刚看了这个 http blog mongodb org post 38467892360 mongodb schema design insights and tradeoffs from http blog mongodb org p
  • 如何在 Django ORM 中更改 PostgreSQL 的默认空排序行为

    默认情况下 PostgreSQL 将 NULL 值视为最高值 因此对于降序查询 首先对它们进行排序 对于升序查询 最后对它们进行排序 您可以通过指定 NULLS LAST 或 NULLS FIRST 在每个查询或创建索引时修改此行为 如何将
  • DELPHI win32 的 ORM [关闭]

    Closed 这个问题正在寻求书籍 工具 软件库等的推荐 不满足堆栈溢出指南 help closed questions 目前不接受答案 有谁知道 Delphi Win32 的 ORM 或类似的东西吗 Marco Cantu 是 Insta
  • 对象关系映射继承

    有没有人really想要并使用过 ORM 工具的继承支持 如果是的话 您认为哪一个提供最好的支持 或者ORM继承是一个 天上掉馅饼 的概念吗 我已经在 Hibernate 中使用了继承 还有一些在 Django 中 并且非常后悔 组合优于继
  • Hibernate vs JPA vs JDO - 各自的优缺点? [关闭]

    Closed 这个问题需要多问focused help closed questions 目前不接受答案 我熟悉 ORM 这个概念 几年前我什至在 NET 项目中使用过 nHibernate 然而 我还没有跟上 Java 中 ORM 的主题
  • Kohana URL 包括重定向和分页索引

    当我使用重定向时 KO3 核心将 index php 插入我的 URL 时遇到问题请求 instance gt redirect 某事 或 paginationStuffHere gt render 其中任何一个的结果都是http www
  • hibernate通过主键查询

    我想通过主键创建查询 假设我有类主键 PersonKey 属性是 name 和 id 我有 Person 类 属性是 PersonKey 地址 DOB 现在 我想通过主键搜索人员 首先 我创建 PersonKey 的实例 并将名称设置为 j
  • @UniqueConstraint 和 @Column(unique=true) 选项之间的 Doctrine ORM 级别差异

    在数据库级别 使用一个选项与另一个选项来定义时没有区别独特性如下所示 虽然 UniqueConstraint在其文档中读取 它仅在 SchemaTool 模式生成上下文中有意义 两者之间是否存在 ORM 级别差异 我的意思是 当我们运行查询
  • Hibernate 抛出奇怪的错误:类未映射

    这是错误 org hibernate hql ast QuerySyntaxException Payment is not mapped select p from Payment p 我不明白为什么会抛出这个错误 应该映射该类 正如我将
  • 如何将事物的组合映射到关系数据库?

    我有一个表 其记录代表某些对象 为了简单起见 我假设该表只有一列 这是唯一的ObjectId 现在我需要一种方法来存储该表中的对象组合 组合必须是唯一的 但可以是任意长度 例如 如果我有ObjectIds 1 2 3 4 我想存储以下组合
  • hibernate总是自己删除表中的所有数据

    您好 我正在开发一个 spring mvc 应用程序 它使用 hibernate 连接到存储文件的 mysql 数据库 我有两个方法 一个方法添加我选择的特定文件路径中的所有文件 另一种方法调用查询以返回从 mysql 存储的文件列表 问题

随机推荐

  • Task.Factory.StartNew() 与 TaskEx.Run()

    Task Factory StartNew 基本上接收一个 Action 并返回一个 Task 在异步 CTP 中 我们有 TaskEx Run 它也接收一个 Action 并返回一个 Task 他们似乎也在做同样的事情 为什么引入 Tas
  • CSS:如何将图像放入底部被剪裁但顶部弹出的圆圈中?

    我有一个父级 div 它是用 CSS 完成的一个圆圈 子级有一个头像图像 我试图让头部与底部的圆圈对齐 但头部伸出圆圈的顶部边缘 类似于 该圆圈也有与示例类似的边框 我正在努力让它适应这样的圆圈形状 我尝试过使用clip path 我已经在
  • Cx_Oracle 使用 Pandas 数据帧输入更新数据库表

    我在使用包含多列值的 pandas 数据帧更新数据库上的现有表时遇到问题 但我只想根据其他列的条件使用其中一些列更新数据库 一个例子 import pandas as pd import cx Oracle d a first second
  • 在 Javascript 文件中为 Internet Explorer 编写条件代码

    我想知道是否可以编写条件javascript在 JavaScript 文件中对于 Internet Explorer 即像这样的东西 if is IE7 do this else do this instead 我知道我可以使用头部的条件注
  • 如何获得具有边际比例的双向表?

    考虑一下这个 var1 lt c A B C C G var2 lt c G B B F A df df data frame var1 var2 gt df var1 var2 1 A G 2 B B 3 C B 4 C F 5 G A
  • iPhone OS 4.0.x - 从后台过渡到前台

    iPhone编程问题 是否可以通过编程方式将 iPhone 应用程序从后台模式唤醒 恢复到前台模式 我有一个长时间运行的后台任务 该任务正在 UIApplicationDelegate 的 applicationDidEnterBackgr
  • 如何在 Apache Bench 中发送多个查询字符串?

    ab n 1 c 1 我得到了第一个查询字符串的答案 但我也得到了 superDo 不被识别为内部或外部命令 可运行的程序或批处理文件 请帮我 TIA 问候 蒂鲁 您可能只需要引用 URL 即可避免 shell 特殊字符被解释 在这种情况下
  • 在 Python 中遍历列表列表中的列

    当我尝试跨行中的列进行迭代时 该列在嵌套循环内不会发生变化 i rows 4 i cols 3 matrix 0 for c in xrange i cols for r in xrange i rows for row r in enum
  • Android 从 Google 云端硬盘串流视频

    我正在构建一个 Android 应用程序 需要从 Google 驱动器流式传输视频 视频链接如下 https docs google com file d ID 我无法获取 rtsp 因此它无法在 videoview 中运行视频 并且它不会
  • Angularjs Post 不向 Spring JWT 发送标头

    我有一个由 AngularJs 构建的网络应用程序和一个由 Spring 构建的后端应用程序 我正在使用 JWT 来保护我的应用程序 使用 Get 方法一切正常 在后端级别我得到了我期望的不记名令牌 这样我就可以返回私人信息 但使用 POS
  • PHP 相当于 Ruby 的或等于 (foo ||=bar)?

    在 PHP 中我经常写这样的行 isset foo NULL foo bar 在 ruby 中 有一个绝妙的捷径 称为或等于 https stackoverflow com questions 995593 what does or equ
  • 为什么 dapper 在执行选择时返回 Guid 全零,但表中的 guid 值设置正确?

    我正在使用 dapper 从表中查询数据 然后将其转换为对象 当它被转换为对象时 guid 属性设置为全零 但所有其他属性都设置正确 public class UserStuff public int Id get set public G
  • 我应该将所有方法参数标记为最终参数并指定类型吗

    有效的 dart 指定顶级变量应该是final当适用 https dart lang github io linter lints prefer final fields html https dart lang github io lin
  • Npm 错误:npm 安装命令的 503 服务不可用

    我正在尝试运行 npm install 命令 但出现此错误 Error 503 Service Unavailable for npm install command 任何人都可以请我请求您解决此问题 这是获取错误日志文件时实际发生的完整错
  • 在 IE9-11 中使用 jQuery 更新 SVG 文本

    我正在尝试使用 jQuery 更新 SVG 路径上的文本 它在 Firefox 和 Chrome 中工作正常 但在 IE9 和 IE11 尚未在 10 上测试 但可能是相同的 中文本未更新 有什么想法 解决方法吗 到目前为止 这是我的代码
  • C:同时运行两个函数?

    我在 C 中有两个函数 void function1 do something void function2 do something while doing that 我如何同时运行这两个函数 如果可以的话请举个例子 你会使用线程 例如
  • 如果满足 AWK 中的条件,则打印行范围

    我想做的是使用 awk 在没有管道的情况下显示满足特定条件的行上方 2 行和下方 2 行 例如 我正在搜索字符串 s62234 找到后 我想打印蓝色矩形内的所有行 如所附屏幕截图所示 这是我正在使用的文件 thefmifile txt s6
  • Dart/Flutter:Http 请求引发 XMLHttpRequest 错误 [重复]

    这个问题在这里已经有答案了 我正在尝试制作一个带有 flutter 的 RSS 阅读器 但是该程序提出了XMLHttpRequest error 在我的测试中 我使用网络 Chrome 作为我的目标平台 感谢您的帮助 Future
  • PHP 中的 FPDF 中的特殊字符

    我有一个用户可以填写的网络表单 该内容使用 FPDF 和 PHP 填充 PDF 当用户输入带有撇号的单词时 PDF 中该单词前面会出现斜杠 同样 商标符号等特殊字符的编码也是错误的 FPDF 常见问题解答说要使用 str utf8 deco
  • Kohana 3.3 ORM _has_many _belongs_to

    我正在尝试使用内置的 ORM 在 Kohana 3 3 中设置产品对象 我想要这样 当我打电话时 p1 ORM factory product gt where product type 1 gt find all 它将创建一个具有以下结构