我尝试构建具有多对多关系的网格视图。所以我需要查询ActiveDataProvider
.
我有一个表“资源”,一个表“类型”,它们之间有一个表“历史”。
我的模型关系很好,但我不知道如何创建 dataProvider。
在我的模型资源中:
public function getHistorique()
{
return $this->hasMany(Historique::className(), ['idType' => 'idType']);
}
public function getType()
{
return $this->hasMany(Type::className(), ['idType' => 'idType'])
->viaTable(Historique::className(), ['idRessource' => 'idRessource']);
}
在我的历史模型中:
public function getType()
{
return $this->hasOne(Type::className(), ['idType' => 'idType']);
}
public function getRessource()
{
return $this->hasOne(Ressource::className(), ['idRessource' => 'idRessource']);
}
最后在我的模型中键入:
public function getHistorique()
{
return $this->hasMany(Historique::className(), ['idType' => 'idType']);
}
public function getRessource()
{
return $this->hasMany(Ressource::className(), ['idRessource' => 'idRessource'])
->viaTable(Historique::className(), ['idType' => 'idType']);
}
因此,在控制器(实际上是我的 ModelSearch)中,我希望从表 historique 中获取具有类型的资源。我不知道我必须添加什么之后
Ressource::find();