Heim > Fragen und Antworten > Hauptteil
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;
Wie zitiert man context_block::instance()
richtig?
Moodle-Funktionen funktionieren offenbar (z. B. require_login(), has_capability). Danke
P粉6429205222024-03-23 09:09:32
您需要写:
if (has_capability('moodle/block:edit', \context_block::instance($blockid)) {}
使用“\”字符声明 context_block 位于顶级命名空间中。
或者您需要将以下内容放在文件顶部:
use \context_block;
我个人更喜欢第一个选项,但这通常是个人喜好的问题。