1

Yii 有一个内置的“存在”功能,我不明白我需要使用这个功能的场景。

以下查询将导致 NULL 或活动记录。

Posts::model()->findByPK('100')

此查询将产生一个布尔值:

Posts::model()->exist(sql)

如果结果为真,我是否需要发出另一个查询?这不是查询的“浪费”吗?(我主要关心性能)

谢谢,丹尼

4

1 回答 1

2

函数本身的原因是性能..findByPk意味着如果找到则将模型加载到变量中,exixts意味着检查是否找到..想象这样一种情况,您只需要找出在给定条件下是否存在记录,那么为什么要加载整个模型实例在一个变量中,然后检查它是否为空,而不是直接有一个布尔值..

如果您需要模型实例(如果它存在),那么如果 ofc 没有用,那么正如您所说,直接使用findByPk..

于 2013-02-19T18:16:13.863 回答