现在我有2张表, 一张是UserArticle, 存储的是user和article之间的管理, 一张是Article, 存储的是文章.
我想在读取UserArticle的时候, 根据Article表的title做ASC的排序, 并有可能根据title进行查找.
UserArticle的的关系是这么设置的:
public function relations() { return array( 'article' => array(self::BELONGS_TO, 'Article', 'articleId', 'alias' => 'article'), 'trigger' => array(self::BELONGS_TO, 'UserRule', 'userRuleId'), ); }
Article的关系里没有和UserArticle相关的设置.
UserArticle里的action代码如下:
public function actionList() { $criteria = new CDbCriteria; if (isset($_GET['ruleId'])) $criteria->condition = 'userRuleId = ' . $_GET['ruleId']; $criteria->order = 'createdTime DESC'; $array = array('trigger', 'article'); if (isset($_GET['title'])) { $array['article'] = array('condition' => "title LIKE %{$_GET['title']}%", 'select' => 'id'); } print_r($array); //exit; $pages = new CPagination(UserArticle::model()->with($array)->count($criteria)); $pages->pageSize = self::PAGE_SIZE; $pages->applyLimit($criteria); if (isset($_GET['sort'])) { if ($_GET['sort'] == 'alpha') { $array['article']['order'] = '??.title ASC'; } } $userArticleList = UserArticle::model()->with($array)->findAll($criteria); $this->render('list',array( 'userArticleList' => $userArticleList, 'pages' => $pages, )); }
运行后, 提示一下错误
Quote
Unable to count records with composite primary keys. Please explicitly specify the SELECT option in the query criteria.
不解的是select要怎么设置才行呢?