通過“外部”實(shí)例化moodle之后
require_once('../config.php');
在應(yīng)用程序(即 MRBS)內(nèi)的 SSO 場景中,當(dāng)查找當(dāng)前登錄的用戶是否對(duì)特定塊具有某些功能時(shí),我收到錯(cuò)誤: Exception - 類“MRBS\Session\context_block”未找到
:
if (has_capability('moodle/block:edit', context_block::instance($blockid)){}
我猜是因?yàn)槊臻g設(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 位于頂級(jí)命名空間中。
或者您需要將以下內(nèi)容放在文件頂部:
use \context_block;
我個(gè)人更喜歡第一個(gè)選項(xiàng),但這通常是個(gè)人喜好的問題。