调用关系对其他关系的模型yii 1.1

kiayqfof  于 2022-11-09  发布在  其他
关注(0)|答案(1)|浏览(155)

我有3模型价格,描述和产品
描述模型与价格模型相关,价格模型与产品相关。
当我尝试使用Price的关系在Description模型上获取产品时,我是否可以调用该产品?
"这就是我要做的"

$description = Description::model()->with('Price')->findAll();
// after that I want to call the product which is on price.

它们都是使用其id连接。product_id、description_id和price_id
我怎样才能做到这一点?有办法吗?

but5z9lq

but5z9lq1#

首先,JFYI当您使用with()方法从ActiveRecord的查询构建器中建立连接部分时,请再次检查特定AR模型中的relations()方法,以查看实际定义的关系。我指出这一点是因为在模型中定义关系并在稍后阶段通过查询构建器访问它们是区分大小写的。
回到你的问题。
如果你已经把你的Description模型急切地加入了你的with()模型Price中,当你在幕后调用$description->price->product时,ActiveRecord将执行所谓的lazy-loading方法。
根据Yii 1.1文件-〉https://www.yiiframework.com/doc/guide/1.1/en/database.arr
1.* 执行关系查询 *
执行关系查询最简单的方法是阅读AR示例的关系属性。如果之前未访问该属性,则将启动关系查询,该查询将连接两个相关表,并使用当前AR示例的主键进行过滤。查询结果将作为示例保存到该属性这被称为延迟加载方法,即,仅当最初访问相关对象时才执行关系查询。

  • 下面的示例显示了如何使用此方法:*
// retrieve the post whose ID is 10
$post = Post::model()->findByPk(10);
// retrieve the post's author: a relational query will be performed here
$author = $post->author;

希望这对你有帮助。

相关问题