php - Yii CDbCriteria 选择带有 AS 别名

标签 php mysql yii

我正在加入 page_content 表,之后两者都有名为 sef_url 的列 以下代码返回错误。 是否有可能在 CDbCriteria->select

中使用 AS 'alias_name'
$criteria=new CDbCriteria;
$criteria->alias = 'p';
$criteria->select = array('p.sef_url, p.date_last_modified, pc.sef_url AS parent_sef_url');
$criteria->join = 'LEFT JOIN page_content pc ON p.parent_pageid = pc.pageid';

$criteria->condition = 'p.published=:published AND p.sitemap_index=:sitemap_index';
$criteria->params = array(':published'=>1,':sitemap_index'=>0); 

$result_arr = parent::model()->findAll($criteria);

echo '<pre>';
print_r($result_arr);

foreach($result_arr as $row) {
  echo $row['parent_sef_url'];
}

最佳答案

你还应该定义一个关系:

public function relations()
{
    return array(
        'parentPageContent'=>array(self::BELONGS_TO, 'PageItem', 'parent_pageid'),
    );
}

在你可以这样做之后:

$pageContents = PageContent::model()->with('parentPageContent')->findAllByAttributes(array(':published'=>1,':sitemap_index'=>0));
foreach($pageContents as $pageContent){
    echo $pageContent->parentPageContent->sef_url;
}

关于php - Yii CDbCriteria 选择带有 AS 别名,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20285938/

相关文章:

iphone - SQLite 的删除和写入,使用 JSON 数据同步 MySQL 中的远程表

yii - 如何在 _view 文件中的 CViewList 小部件中创建 ajax 删除链接

php - 通过 htaccess 为登录用户强制 https

php - 使用 Amazon AWS 服务 PHP 发送短信

php - 如何在PHP中获取迭代中的第一个数据

php - 在网站上用表格显示 MySQL 数据的最简单方法?

mysql - XAMPP - 错误 : MySQL shutdown unexpectedly

php - 使用 Html 链接自定义 CButtonColumn

php - MySQL:在查询中动态交换 "= :value"为 "IS :value"

php - 将digitalocean上的wordpress迁移到阿里云上的另一台云服务器失败