2014-01-20 100 views
0

我將如何去搜索相關模型中的模型?我有一個作者模型和一個後期模型。作者模型與帖子具有「HAS_MANY」關係,並且帖子與作者具有「BELONGS_TO」關係。基本上,每個作者都有很多帖子。鑑於作者姓名和職位名稱,我需要獲得符合此條件的帖子。只有一個匹配,因爲作者姓名和帖子名稱的組合是唯一的。 (這,我有工作)「作者姓名」駐留在作者模型和「帖子名稱」駐留在帖子模型。Yii如何跨關係搜索模型

對於非關係模型,我一直在使用這個命令可以找到型號:

ExampleModel::model()->findByAttributes(array('name' => $nameInput)); 

,但我似乎無法找出像我上面描述如何通過關係查詢。

回答

1

使用CDbCriteria實例,而不是CActiveRecord::find()

$c=new CDbCriteria 

$c->together=true; 
$c->with=array('author'); //the name of the related model in the model you are searching 

// the format for searching related fields is relation.field 
$c->compare('author.name',$nameInput); 
$c->compare('name',$postInput); 

$post=Post::model()->find($c); 
+0

簡單而短。你是一個救星! =)評論也很棒。 – train