PHP – Ausnahmeklasse nicht gefunden – falscher Namespace
P粉770375450
P粉770375450 2024-03-22 12:41:34
0
1
541

Nach der Instanziierung von Moodle über „extern“

require_once('../config.php');

Wenn ich in einem SSO-Szenario innerhalb einer Anwendung (d. h. MRBS) nachschaue, ob der aktuell angemeldete Benutzer über bestimmte Fähigkeiten für einen bestimmten Block verfügt, erhalte ich die Fehlermeldung: Exception - 类“MRBSSessioncontext_block”未找到 :

if (has_capability('moodle/block:edit', context_block::instance($blockid)){}

Ich vermute, das liegt daran, dass der Namespace auf namespace MRBSSession;

eingestellt ist

Wie zitiert man context_block::instance() richtig?

Moodle-Funktionen funktionieren offenbar (z. B. require_login(), has_capability). Danke

P粉770375450
P粉770375450

Antworte allen(1)
P粉642920522

您需要写:

if (has_capability('moodle/block:edit', \context_block::instance($blockid)) {}

使用“\”字符声明 context_block 位于顶级命名空间中。

或者您需要将以下内容放在文件顶部:

use \context_block;

我个人更喜欢第一个选项,但这通常是个人喜好的问题。

Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage