gpt4 book ai didi

php - Yii:如何为模型设置唯一的表别名

转载 作者:可可西里 更新时间:2023-11-01 01:02:23 24 4
gpt4 key购买 nike

我正在研究两个模型。

  1. 证书
  2. 消息

凭据模型有一个默认范围方法,我在其中添加了 addNotInCondition 来过滤被阻止的用户。这是我的代码

public function defaultScope() {
$criteria = new CDbCriteria();
$criteria->addNotInCondition("t.id", BanUser::model()->bannedUsers);
return $criteria;
}

这很好用。但是从消息模型访问凭据模型时,它给了我错误。 未知列“t.id”。 (BELONGS_TO 关系在消息模型中定义)

$message->credential; //this generate error.

有什么办法可以解决这个问题。我知道这是由于表别名。我被困在这里了。请帮忙。

最佳答案

您可以通过模型的默认范围方法为模型设置表别名:

/**
* @return array default scope (applies only to SELECT statements)
*/
public function defaultScope () {
return array(
'alias' => $this->tableName(),
);
}

然后在别处也使用别名,例如在搜索中:

public function search () {
$criteria = new CDbCriteria;
$criteria->alias = $this->tableName();
$criteria->compare( $criteria->alias.'.id', $this->id );
return new CActiveDataProvider( $this, array(
'criteria' => $criteria,
) );
}

关于php - Yii:如何为模型设置唯一的表别名,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20441348/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com