2014-01-06 1 views
0

я борюсь с Идентом-componentent в CakePHP 2.x Книга говорит here (последняя запись в нижней части), что

$this->Auth->user(); 

возвращает все пользовательские данные, если параметр является недействительным.

"$key (string) – The user data key you want to fetch. 
If null, all user data will be returned." 

Но если эхо из $u

$u = $this->Auth->user(); 

Затем отображается только идентификатор пользователя. Я ожидал весь массив пользователей. Есть идеи?

+0

Что делает var_dump ($ this-> Auth-> user()), скажем? –

+0

Вы имеете в виду '$ u = $ this-> Auth'? – Cilan

+0

var_dump ($ this-> Auth-> user()), говорит строка (2) «21». Это идентификатор, а не массив. – FishWave

ответ

-1
$this->Auth->user(); 

возвращает данные из таблицы пользователей, вы должны использовать

$id= $this->Auth->user('id'); 

Для извлечения ID

+0

Он хочет получить все данные, а не только 'id'. –

+0

Когда я делаю $ this-> Auth-> user ('id'), я получаю предупреждение (4096): Аргумент 1, переданный в Hash :: get(), должен быть из массива типов, строки, указанной в/home/xxx/lib/Cake/Controller/Component/AuthComponent.php в строке 656 и определяется [CORE/Cake/Utility/Hash.php, строка 43] – FishWave

1
$this->Auth->user(); 

возвращаемое значение массива, так что если вы хотите просто напечатать весь контент для отладки попробуйте

$u = $this->Auth->user(); 
var_dump($u); 

или

print_r($u); 
+0

Я это знаю. Я говорю: $ this-> Auth-> user(); возвращает id вместо всего массива пользователей, как описано в книге. – FishWave

0

$u = $this->Auth->user();

возвращает ассоциативный массив, то доступ к полям с помощью клавиш в таблице, например

echo $u['username']; 
echo $u['email']; 
+0

Вы не поняли мою проблему. Я знаю, что он должен возвращать ассоциативный массив, НО ЭТО НЕ! Читайте мой вопрос еще раз ... – FishWave

+0

@FishWave Смотрите мой комментарий выше. Исправьте свой код - особенно вокруг вашего логина. Тогда он будет работать так, как ожидалось. – mark

0

$ и = $ this-> Auth-> пользователя();

Yes you are trying echo $u; 

Insted этого попробуйте ниже

vardump($u); or print_r($u); 

позвольте мне сейчас, если это полезно для вас.

Благодаря

0

Как Марк (DerEuroMark) ожидается в комментариях, мой Логин сценарий был неправ. По какой-то причине я сохранил массив слишком плоским. Код входа был неверным. Я установил код входа (соответственно я написал от scatch и теперь все работает отлично. Спасибо в любом случае за все ответы.

0

Попробуйте этот код .......... рг ($ this-> Auth-> user())