【发布时间】:2020-02-16 17:52:10
【问题描述】:
我正在尝试使用教授的 id(教师 id)创建一个自定义 dataProvider。我的网站提供有关学校教师、课程、成绩等的信息。
用户 Alumno(学生)将看到他注册的每门课程的教授的网格视图,因此,我试图在 dataProvider 中返回该信息。
首先,我询问用户是否是校友。
然后我搜索校友注册的 Asignaturas。
根据这些信息,我搜索教授 Cursos 的教授,将其 id 作为 dataProvider 返回,因此我创建了一个 foreach 循环。
我需要的是一组 Profesore id 的数组,这样我就可以在网格视图中显示 Profesor 的名字。实际代码是将最后一个 Profesor id 查询到 dataProvider 中。
public function actionIndex()
{
$this->layout = 'main';
$searchModel = new ProfesorSearch();
$dataProvider = $searchModel->search(Yii::$app->request->queryParams);
if(User::isUserAlumno(Yii::$app->user->identity->id)){
$alumno = Alumno::find()->where(['id_usuario' => Yii::$app->user->identity->id])->one();
$asignaturas = Asignatura::find()->where(['id_curso' => $alumno->id_curso])->all();
foreach ($asignaturas as $asignatura){
$dataProvider = new ActiveDataProvider([
'query' => Profesor::find()->where(['id' => $asignatura->id_profesor])
]);
}
}
return $this->render('index', [
'searchModel' => $searchModel,
'dataProvider' => $dataProvider,
]);
}
任何帮助将不胜感激。
【问题讨论】:
标签: yii2 dataprovider