2015-10-19 2 views
0

Код:Странное поведение, Codeigniter Database

function foo ($param) 
{ 
    $this->ci->db->select ( '*' ); 
    $this->ci->db->from ($this->tableUser [ 'table' ] . ' as u'); 
    $this->ci->db->where ('u.' . $this->tableUser [ 'column' ] [ 'id' ], $param); 
    $query = $this->ci->db->get (); 
    if (! $query) { throw new Exception ('Something went wrong') } 
    $data = $query->unbuffered_row ('array'); 
    var_dump($data); 

    $data [ $this->tableUser [ 'username' ] ] 
} 

Результат var_dump():

array(29) { 
    ["id"]=> string(1) "1" 
    ["id_user_groups"]=> string(1) "3" 
    ["email"]=> string(16) "[email protected]" 
    ["username"]=> string(7) "Demouser" 
    ["password"]=> string(60) "$2y$10$fi0zUzFlMm9QJEV5ZVo9eQMQMYApytT1asiePbSB9y" 
    ["ip_address"]=> string(9) "127.0.0.1" 
    ... 
    ... 
} NULL 

Как вы можете видеть, функция Foo() работает, как это и должно быть, Результат var_dump() тоже хорош, данные $ являются ассоциативным массивом, но все же на строке $data [ $this->tableUser [ 'username' ] ]. Я получаю следующую ошибку. Почему?

PHP-ошибка была обнаружена

Серьезность: Обратите внимание

Сообщение: Undefined индекс: имя пользователя

Имя файла: User/User.php

Порядковый номер: 439

+1

хочу получить некоторое разъяснение, сначала trt доступа, как это '$ data ['username']' и 'echo $ this-> tableUser;' посмотреть, что получилось в обоих. –

+0

@NiranjanNRaju oops: P Спасибо. – StudentX

+0

его рабочий тон ??? в чем была ошибка? –

ответ

1

заменить t его линия,

$data [$this->tableUser['username']] 

с

$data ['username']; 

Если на все, что вы хотите использовать $this->tableUser, первый echo $this->tableUser; и проверить, что приходит в этом.