PHP - classe d'exception introuvable - espace de noms incorrect
P粉770375450
P粉770375450 2024-03-22 12:41:34
0
1
530

Après avoir instancié Moodle via "externe"

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

Dans un scénario SSO au sein d'une application (c'est-à-dire MRBS), lorsque je recherche si l'utilisateur actuellement connecté dispose de certaines capacités pour un bloc spécifique, j'obtiens l'erreur : Exception - 类“MRBSSessioncontext_block”未找到 :

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

Je suppose que c'est parce que l'espace de noms est défini sur namespace MRBSSession;

Comment citer context_block::instance() correctement ?

Les fonctions Moodle fonctionnent apparemment (par exemple require_login(), has_capability). Merci

P粉770375450
P粉770375450

répondre à tous(1)
P粉642920522

Vous devez écrire :

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

Déclarez context_block dans l'espace de noms de niveau supérieur en utilisant le caractère "".

Ou vous devez mettre ce qui suit en haut du fichier :

use \context_block;

Personnellement, je préfère la première option, mais c'est généralement une question de préférence personnelle.

Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal