suchen

Heim  >  Fragen und Antworten  >  Hauptteil

PHP – Ausnahmeklasse nicht gefunden – falscher Namespace

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粉770375450P粉770375450244 Tage vor514

Antworte allen(1)Ich werde antworten

  • P粉642920522

    P粉6429205222024-03-23 09:09:32

    您需要写:

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

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

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

    use \context_block;

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

    Antwort
    0
  • StornierenAntwort