villiwalla
@villiwalla
HTML-верстка

Почему в MVC — Notice: Undefined index: ipphone, а без MVC всё работает?

При загрузки странице по нежному адресе, идёт загрузка пользователей из Active Directory. Если взять класс Sprav и разместить его вместе с вьюхой (подразумеваю что весь код в 1 файле и доступ к нему получаю по адресу localhost.dev/sprav.php), то выгрузятся все юзеры и никаких проблем нет. Если же разбираю код на MVC то при переходите на страницу со списком юзеров, страница начинает грузится постоянно и выкидывая ошибку о не известном индексе массива(все ключи(индекса) массива есть!) полученного из AD.

5d6a11985adb4a8db6c3805e3ca2d07d.png
И далее нон-стоп крутит данные $data

Класс модели (Sprav.php):
class Sprav {

    public static function getUserLdap() {

        $ldapUser = "USER@DOMAIN";
        $ldapPass = "PASSWoRD";
        $ldapHost = "DOMAIN";
        $ldapPort = '389';
        $dn = "OU=MAIN,DC=LOCAL,DC=DOMAIN,DC=RU";

        $filter="(&(primaryGroupID=513))";

        $justthese = array("ou", "sn", "givenname","department", "samaccountname", "mail","ipphone","mobile","title","useraccountcontrol","company");

        $connect = ldap_connect($ldapHost, $ldapPort);

        ldap_set_option($connect, LDAP_OPT_PROTOCOL_VERSION, 3);
        ldap_set_option($connect, LDAP_OPT_REFERRALS, 0);

        $data = [];

        if ($connect) {

            $bind = ldap_bind($connect,$ldapUser,$ldapPass);

            if ($bind) {
                $result = ldap_search($connect,$dn,$filter,$justthese);
                $data = ldap_get_entries($connect,$result);

            } else {
                echo "LDAP-Авторизация не удалась...<br>";
            }

        } else {
            echo "LDAP-соединение не удалась...<br>";
        }

        $users = [];

        for ($i = 0; count($data) > $i; $i++) {
            $users[$i]['lastname'] = $data[$i]['sn'][0];
            $users[$i]['name'] = $data[$i]['givenname'][0];
            $users[$i]['department'] = $data[$i]['department'][0];
            $users[$i]['login'] = $data[$i]['samaccountname'][0];
            $users[$i]['mail'] = $data[$i]['mail'][0];
            $users[$i]['extension'] = $data[$i]['ipphone'][0];
            $users[$i]['mobile'] = $data[$i]['mobile'][0];
            $users[$i]['post'] = $data[$i]['title'][0];
            $users[$i]['code'] = $data[$i]['useraccountcontrol'][0];
            $users[$i]['company'] = $data[$i]['company'][0];
        }

        return $users;

    }
}


Контроллер (SpravController):
require_once(ROOT.'/model/Sprav.php');

class SpravController
{

    public function actionView() {

        $user = Sprav::getUserLdap();

        require_once(ROOT.'/view/sprav.php');
        return true;
    }

}


Код шаблона(/view/sprav.php):
<? for($i=0; count($user) > $i; $i++): ?>
            <tr>
                <td><?= $i; ?>/<?= $user[$i]['code']; ?></td>
                <td><?= $user[$i]['lastname']; ?></td>
                <td><?= $user[$i]['name']; ?></td>
                <td><?= $user[$i]['company']; ?></td>
                <td><?= $user[$i]['department']; ?></td>
                <td><?= $user[$i]['post']; ?></td>
                <td><?= $user[$i]['extension']; ?></td>
                <td><?= $user[$i]['mobile']; ?></td>
                <td><?= $user[$i]['mail']; ?></td>
            </tr>
    <? endfor; ?>


$data
array (size=51)
  'count' => int 50
  0 => 
    array (size=22)
      'sn' => 
        array (size=2)
          'count' => int 1
          0 => string 'Фамилия' (length=12)
      0 => string 'sn' (length=2)
      'title' => 
        array (size=2)
          'count' => int 1
          0 => string 'Менеджер по продажам' (length=38)
      1 => string 'title' (length=5)
      'givenname' => 
        array (size=2)
          'count' => int 1
          0 => string 'Имя юзера' (length=14)
      2 => string 'givenname' (length=9)
      'department' => 
        array (size=2)
          'count' => int 1
          0 => string 'Продажи' (length=14)
      3 => string 'department' (length=10)
      'company' => 
        array (size=2)
          'count' => int 1
          0 => string 'Название Компании' (length=27)
      4 => string 'company' (length=7)
      'useraccountcontrol' => 
        array (size=2)
          'count' => int 1
          0 => string '512' (length=3)
      5 => string 'useraccountcontrol' (length=18)
      'samaccountname' => 
        array (size=2)
          'count' => int 1
          0 => string 'В транслите' (length=8)
      6 => string 'samaccountname' (length=14)
      'ipphone' => 
        array (size=2)
          'count' => int 1
          0 => string '110' (length=3)
      7 => string 'ipphone' (length=7)
      'mail' => 
        array (size=2)
          'count' => int 1
          0 => string 'mail@mail.ru' (length=18)
      8 => string 'mail' (length=4)
      'mobile' => 
        array (size=2)
          'count' => int 1
          0 => string '+7 777 777 88 99' (length=18)
      9 => string 'mobile' (length=6)
      'count' => int 10
      'dn' => string 'dn-path' (length=76)
  • Вопрос задан
  • 153 просмотра
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы