0%

dbis_starter_kit_developNote

Win10远程桌面 出现 身份验证错误,要求的函数不受支持

运行 gpedit.msc,本地组策略:计算机配置>管理模板>系统>凭据分配>加密Oracle修正

选择启用并选择易受攻击。

cmd 中输入:mstsc /admin /v:192.168.190.191

mstsc (Microsoft terminal services client) 创建与终端服务器或其他远程计算机的连接,编辑现有“远程桌面连接(.rdp)”配置文件,并将 Windows XP 连接,迁移到新的 .rdp 文件中。Microsoft Telnet Screen Control ,即“微软远程桌面控制”。

创建考勤用户-用户ID设置下拉菜单

数据库表与 model 对应。在创建考勤用户时,只显示未成为 atd_user 的 student 的 username. 在 dbis_user_student 表中取出所有 use_id,在 atd_user 表中取出所有的 uid, 求差集。得到 useId 的集合,到 user 表中查得 user 对象,将 userId 和 userName 存入数组,用 DropList 展示数据。

backend\models\AtdUser.php:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
public static function getRemainUsers()
{
$atdUsers = self::find()->select(["uid"])->all();
$atdUserIds=array();
for($i = 0; $i < count($atdUsers); $i++) {
// var_dump($atdUsers[$i]["uid"]);
$atdUserIds[] = $atdUsers[$i]["uid"];
}
$userStudents = \common\models\UserStudent::find()->select(["userid"])->all();
$userStudentIds=array();
for($i = 0; $i < count($userStudents); $i++) {
// var_dump($atdUsers[$i]["uid"]);
$userStudentIds[] = $userStudents[$i]["userid"];
}
$userIdList=array_diff($userStudentIds, $atdUserIds);

//根据userIdList从User表中取出姓名
$userList=User::findAll($userIdList);
// var_dump($userList);

foreach ($userList as $key => $user) {
$userDropList[$user['id']] = $user['username'];
}
// var_dump($userDropList);
// die();
return $userDropList;
}
PHP打印输出
1
2
var_dump($userStudents[1]['userid']);
die();

如果改了_form 的参数,其他用到该表格的地方的参数也需要修改。AtdUserController.php中,update 和 create 函数传递给 _form 的 userList 并不相同,create 可以直接调用 getRemainUsers(),update的 userList 应包含所有user,如果只是传入剩余的学生列表,下拉框中会默认显示数组的第一个值。

下拉列表默认选中不是在options参数里面决定的,而是$model->category的值决定的。

考勤页面 默认按照ccid排序

backend\views\attendance\atd-user\index.php 中使用了 GridView 组件来展示列表,在 backend\controllers\attendance\AtdUserController.php 的 actionIndex() 中创建 AtduserQuery 对象用于数据库查询,最后传入参数。

修改 backend\models\search\AtdUserQuery.php:

1
2
3
4
5
$dataProvider = new ActiveDataProvider([
'query' => $query,
// 新增配置项 默认 ccid 升序
'sort' => ['defaultOrder' => ['ccid' => SORT_ASC]],
]);

创建用户时报错 500,但能成功创建

1
2
3
4
5
#0 D:\xampp\htdocs\dbis_starter-kit\vendor\yiisoft\yii2\rbac\DbManager.php(835): yii\base\ErrorHandler->handleError(8, 'Trying to get p...', 'D:\\xampp\\htdocs...', 835, Array)
#1 D:\xampp\htdocs\dbis_starter-kit\common\models\User.php(293): yii\rbac\DbManager->assign(NULL, 165)
#2 D:\xampp\htdocs\dbis_starter-kit\backend\models\UserForm.php(126): common\models\User->afterSignup()
#3 D:\xampp\htdocs\dbis_starter-kit\backend\controllers\UserController.php(69): backend\models\UserForm->save()
#4 [internal function]: backend\controllers\UserController->actionCreate()

是因为数据库中没有 user 这个角色,因此 getRole() 返回了 NULL 值:

(afterSignup()函数)

1
2
3
4
5
// Default role
$auth = Yii::$app->authManager;

// if $auth->getRole(User::ROLE_USER) = NULL ?
$auth->assign($auth->getRole(User::ROLE_USER), $this->getId());

直接注释掉这两行。

另外,状态为 NOT Active 的用户无法登录。