NetCommons-3.3.2でデバッグ出力レベル2で会員制サイトを構築中です。
会員項目設定で項目を2段目まで増やしました。その後、会員管理画面を開いたところ、Noticeエラーが表示されました。
1行目のエラーは以下のとおりです。
Notice (8): Undefined index: name [APP/Plugin/Users/Model/UserSearchAppModel.php, line 78]
Code Context
}
$label = $userAttr['name'];
2行目以降は同じエラーが延々と続きます。
Notice (8): Undefined index: id [APP/Plugin/Users/Model/UserSearchAppModel.php, line 143]
Code Context
if (isset($userAttribute['UserAttributeChoice'])) {
foreach ($userAttribute['UserAttributeChoice'] as $choice) {
if ($choice['user_attribute_id'] == $userAttr['id']) {
特別変わったことをしていませんので、システムが正しいのか疑問に感じています。プラグインファイルに傷がついたのかもしれないと考えて、UserAttributes, UserManager, UserRoles, Usersプラグインをいったん削除して、再度配置し直し、プラグイン管理でアップデートしても、現象は同じです。
デバッグ出力レベルを0にするとNoticeエラーは消えますが、会員管理画面で情報をエクスポートしようとすると、The requested file was not foundと表示されて上手くいきません。
$userAttrに関する記述を同じファイルで見ると、以下のようになっています。
$userAttr = [];
foreach ($userAttributes as $arr) {
foreach ($arr as $item) {
foreach ($item as $userAttribute) {
if ($userAttribute['UserAttribute']['key'] === $attrKey) {
$dataTypeKey = $userAttribute['UserAttributeSetting']['data_type_key'];
$userAttr = $userAttribute['UserAttribute'];
break;
}
}
}
}
PHPにあまり詳しくありませんが、$userAttrに最終的に格納されるのは、配列$userAttributeの最後の項目となりますが、それでいいのでしょうか?
PHPのバージョンは7.2.24です。
困っています。助けてください。