Kohana v3 ORM 基于不同表的 Select 和 Where 子句

Posted

技术标签:

【中文标题】Kohana v3 ORM 基于不同表的 Select 和 Where 子句【英文标题】:Kohana v3 ORM Select and Where clause based on different table 【发布时间】:2010-10-05 01:36:00 【问题描述】:

您好,我需要这样做:

$hours->task->job->where('group_id' , '=' , $num)->find_all();

这将返回工作信息。有没有办法告诉 orm 从 $hours 表中返回信息?

【问题讨论】:

你的问题不够清楚。 我认为他想根据工作的 group_id 返回小时记录。像 $hours->where('task->job->group_id, '=', $group_id)->find_all() 这样的东西当然行不通。 是的,Gerry 明白了。我想要这样的东西,但我不知道怎么做。 【参考方案1】:

首先,你的基本 php 是错误的。

另外,请确保链接中的复数是准确的:

$task->jobs 假定任务与作业具有一对多的关系。你不能使用 find_all 除非它这样做。

这将在您的模型中定义。

试试:

$task = ORM::factory( 'task' , $some_task_id );

$hours = $task->jobs->where( 'group_id', '=', $num )->find_all();

这假定“group_id”值是作业模型中的一列。

希望这会有所帮助。如果您需要更多帮助,请添加 cmets。

【讨论】:

这仍然会返回作业表。我想要返回任务表。我认为最好的方法是加入。

以上是关于Kohana v3 ORM 基于不同表的 Select 和 Where 子句的主要内容,如果未能解决你的问题,请参考以下文章

Kohana 3.0.x ORM:读取数据透视表中的其他列

表的列名作为Kohana3框架中的变量

已达到 PHP 最大数据库连接数 - 使用 Kohana/ORM 启动连接

Kohana 3.1 都有哪些可用的 ORM 解决方案?

Kohana:授权 ORM

KOHANA:ORM + MySQL 找不到表