通過“外部”實例化moodle之后
require_once('../config.php');
在應(yīng)用程序(即 MRBS)內(nèi)的 SSO 場景中,當(dāng)查找當(dāng)前登錄的用戶是否對特定塊具有某些功能時,我收到錯誤: Exception - 類“MRBS\Session\context_block”未找到
:
if (has_capability('moodle/block:edit', context_block::instance($blockid)){}
我猜是因為命名空間設(shè)置為namespace MRBS\Session;
如何正確引用context_block::instance()
?
Moodle 函數(shù)顯然可以工作(例如 require_login()、has_capability)。 謝謝
您需要寫:
if (has_capability('moodle/block:edit', \context_block::instance($blockid)) {}
使用“\”字符聲明 context_block 位于頂級命名空間中。
或者您需要將以下內(nèi)容放在文件頂部:
use \context_block;
我個人更喜歡第一個選項,但這通常是個人喜好的問題。