牛骨文教育服务平台(让学习变的简单)
博文笔记

Yii关联表字段查询

创建时间:2015-05-05 投稿人: 浏览次数:782

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,
		));
}




声明:该文观点仅代表作者本人,牛骨文系教育信息发布平台,牛骨文仅提供信息存储空间服务。