透過(guò)「外部」實(shí)例化moodle之後
require_once('../config.php');
在應(yīng)用程式(即MRBS)內(nèi)的SSO 場(chǎng)景中,當(dāng)查找目前登入的使用者是否對(duì)特定區(qū)塊具有某些功能時(shí),我收到錯(cuò)誤: Exception - 類(lèi)別“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)。 謝謝
您需要寫(xiě):
if (has_capability('moodle/block:edit', \context_block::instance($blockid)) {}
使用「\」字元聲明 context_block 位於頂級(jí)命名空間中。
或您需要將以下內(nèi)容放在文件頂部:
use \context_block;
我個(gè)人比較喜歡第一個(gè)選項(xiàng),但這通常是個(gè)人喜好的問(wèn)題。