Moodle Auth с использованием contextxtid в массиве - PullRequest
0 голосов
/ 01 сентября 2011

Может кто-нибудь пролить свет на то, почему это не работает:

$USER->id - зарегистрированный пользователь.

  $contextroles = get_records_sql("SELECT userid FROM {$CFG->prefix}role_assignments WHERE contextid = 23 AND roleid = 3");

        if (in_array($USER->id, $contextroles)) {
        echo'your in<br />';
        echo $USER->id.'<br />';
        print_r($contextroles);
        }

        else{
        echo'Access denied<br />';
        echo $USER->id.'<br />';
        print_r($contextroles);
        }

Это вывод:

Доступ запрещен

5410

Array ([7] => объект stdClass ([userid] => 7) [9] => объект stdClass ([userid] => 9) [27] => объект stdClass ([userid] => 27) [98] => Объект stdClass ([userid] => 98) [203] => Объект stdClass ([userid] => 203) [252] => Объект stdClass ([userid] => 252) [5410] => Объект stdClass ([userid] => 5410))

Любая помощь будет принята с благодарностью.

1 Ответ

1 голос
/ 29 сентября 2011

$ contextroles - это массив объектов, и стрелка, которую вы ищете, находится внутри объекта.in_array не может обрабатывать объекты и, следовательно, не работает.Вы можете использовать следующий фрагмент кода для получения желаемых результатов:

http://www.php.net/manual/en/function.in-array.php#105937

...