我添加了多个用户作为教师。我创建了一个表,每个教师都在其中更新他的数据,即文档等,但当另一个教师登录时,他也可以查看该数据,如何限制用户向其他用户显示该数据?
cmssoen21#
您需要阅读更多关于Yii的内容,以及如何使用它。对于您的案例,您可以阅读以下内容:add condition对于您的问题,您可以在controller中的操作中执行此操作:0)确保用户已登录:\Yii::$app->user->isGuest || //redirect to login page或通过访问控制过滤器1)从用户获取用户ID。(\Yii::$app->user->identity->id)2)在教师文档查询中设置此id。如andWhere(['teacher_id' => $userId]);
\Yii::$app->user->isGuest || //redirect to login page
\Yii::$app->user->identity->id
andWhere(['teacher_id' => $userId]);
public function actionViewDoc() { $userId = \Yii::$app->user->identity->id; $model = TeacherDoc::find()->andWhere(['teacher_id' => $userId]); return $this->render('viewDoc', [ 'model' => $model, ]); }
这将解决您的问题。UPD:对于更高级的解决方案,您可以用途:1)访问控制筛选器2)基于角色的访问控制。
1条答案
按热度按时间cmssoen21#
您需要阅读更多关于Yii的内容,以及如何使用它。
对于您的案例,您可以阅读以下内容:add condition
对于您的问题,您可以在controller中的操作中执行此操作:
0)确保用户已登录:
\Yii::$app->user->isGuest || //redirect to login page
或通过访问控制过滤器1)从用户获取用户ID。(
\Yii::$app->user->identity->id
)2)在教师文档查询中设置此id。如
andWhere(['teacher_id' => $userId]);
这将解决您的问题。
UPD:对于更高级的解决方案,您可以用途:
1)访问控制筛选器
2)基于角色的访问控制。