[英]Yii CDbCriteria select with AS alias
I'm joining page_content
table with the same and after that both have column named sef_url
Following code returns an error.我正在加入具有相同的page_content
表,之后两者都有名为sef_url
的列以下代码返回错误。 Is there any possibility to get the AS 'alias_name' use inside of CDbCriteria->select
是否有可能在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'];
}
Also you should define a relation:您还应该定义一个关系:
public function relations()
{
return array(
'parentPageContent'=>array(self::BELONGS_TO, 'PageItem', 'parent_pageid'),
);
}
After you can do that:在你可以这样做之后:
$pageContents = PageContent::model()->with('parentPageContent')->findAllByAttributes(array(':published'=>1,':sitemap_index'=>0));
foreach($pageContents as $pageContent){
echo $pageContent->parentPageContent->sef_url;
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.