PHP - 未找到异常类 - 错误的命名空间

问题描述 投票:0回答:1

通过“外部”实例化moodle后

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

在应用程序内的 SSO 场景(即 MRBS)中,当要查明当前登录的用户是否对特定块具有某些功能时,我收到错误:

Exception - Class "MRBS\Session\context_block" not found

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

我猜是因为命名空间设置为

namespace MRBS\Session;

如何正确引用

context_block::instance()

Moodle 函数显然可以工作(例如 require_login()、has_capability)。 谢谢

php moodle moodle-api
1个回答
0
投票

您需要写:

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

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

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

use \context_block;

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

© www.soinside.com 2019 - 2024. All rights reserved.