如何为“一对多”关系创建搜索表单/标准:假设“选择人群 > 10.000 的所有团队”。
我正在使用 MongoRecord 扩展(http://www.yiiframework.com/extension/mongorecord/)作为 MongoDb 的基本活动记录。
我基于来自 mongo db 的集合创建了一个带有 Yii 的 GridView(它适用于我)。我的一个文档的集合具有这样的结构:
{
_id":1,
"teamId":2453,
"teamName":"Team A",
"competition":["Competition A","Competition B"],
"matches":
[
{
"_id":147852,
"crowd":10234,
"yellowCards":2,
"scorers" [{....}]
....
}
]
...
}
我的文件:
$teams = MongoTeam::model()->findAll();
My dataProvider is:
$dataProvider=new CArrayDataProvider($teams, array(
'id'=>'_id',
'sort'=>array(
'attributes'=>array(
'_id', 'teamId', 'teamName', 'matches', ...
),
),
'pagination'=>array(
'pageSize'=>20,
),
));
$this->render('index', array('dataProvider'=>$dataProvider));
在视图中我有这样的东西:
$this->widget('zii.widgets.grid.CGridView', array(
'dataProvider'=>$dataProvider,
'columns'=>array(
array(
'name' => 'Team ID',
'type' => 'raw',
'value' => 'CHtml::encode($data->teamID)'
),
array(
'name' => 'Team Name',
'type' => 'raw',
'value' => 'CHtml::encode($data->teamName)'
),
...
但是我无法使用子文档的标准创建过滤器(我的情况:“匹配”)。我不想使用任何其他 mongoDB 扩展/模块等。感谢和抱歉我的英语不好。