Yii关联表字段查询
Yii的activeRecord model里有一个search方法,可以用来搜索 数据,但是今天在搜索时,发现会用关联表的字段来搜索数据,查找资料,找到了解决方法
比如article表与user表有关联,需要在本表中用user.nickname字段来搜索数据
//在model里先定义一个搜索字段
public $nickname_search;
//定义关联规则
public function relation(){ return array( "users" => array( self::BELONGS_TO, "User", "user_id" ) ); }//定义搜索方法
public function search(){ $criteria = new CDbCriteria; $criteria->with = array( "users" ); $criteria->compare( "users.nickname", $this->nickname_search, true ); return new CActiveDataProvider($this, array( "criteria" => $criteria )); }
//在actionIndex里可以如此使用搜索
public function actionIndex(){ $model=Article::model(); if(isset($_GET["nickname"]){ $modle->nickname_search=$_GET["nickname"]; $dataProvider=$model->search(); }else{ $dataProvider=new CActiveDataProvider($model->with("users")); } $this->render("index",array( "dataProvider"=>$dataProvider, )); }
声明:该文观点仅代表作者本人,牛骨文系教育信息发布平台,牛骨文仅提供信息存储空间服务。
- 上一篇: Yii: 返回数据表中指定字段以及添加自定义字段值
- 下一篇: Yii2让关联字段支持搜索功能