#cakephp #cakephp-1.3
#cakephp #cakephp-1.3
Вопрос:
У меня есть следующие коды, я добавил отладку, и это данные, которые я могу извлечь из базы данных. Я хочу отобразить ['User']['firstName']
а также ['Passion']['passion_tag']
на странице просмотра, как мне это сделать? Я сталкиваюсь с такой ошибкой, как:
Примечание (8): Неопределенный индекс: passion_tag [APP viewssearchessimple_search.ctp, строка 127]
[5] => Array
(
[User] => Array
(
[id] => 41
[password] => 2b4a3cf55ddf9b15e161aeba3540a75ddd6ea872
[firstName] => Ming Xin
[lastName] => Toh
[email] => mingxin@xconnect.com
[locale] => eng
[displayName] =>
[timezone] => 0
[gender] => f
[dob] => 1989-08-25
[aboutme] =>
[country_home] =>
[country_current] => Singapore
[city_current] =>
[currentLogin] =>
[lastLogin] =>
[registeredDate] =>
[profileImgBig] =>
[image_id] =>
[authProvider] =>
[token] =>
[authId] =>
)
[Image] => Array
(
[id] =>
[name] =>
[img_file] =>
)
[Passion] => Array
(
[0] => Array
(
[id] => 46
[tag] => acting
[dateCreated] =>
[userDefined] => 1
[PassionsUser] => Array
(
[id] => 64
[user_id] => 41
[passion_tag] => acting
[description] => Dont be shy
[datejoined] => 2011-09-07 07:06:54
[type] => professional
[passionImg] => UserPassion/Acting.jpg
)
)
[1] => Array
(
[id] => 44
[tag] => cake baking
[dateCreated] =>
[userDefined] => 1
[PassionsUser] => Array
(
[id] => 62
[user_id] => 41
[passion_tag] => cake baking
[description] => Bakey Bakey
[datejoined] => 2011-09-07 09:04:10
[type] => professional
[passionImg] => UserPassion/Cake Baking.jpg
)
)
[2] => Array
(
[id] => 42
[tag] => hip hop dancing
[dateCreated] =>
[userDefined] => 1
[PassionsUser] => Array
(
[id] => 60
[user_id] => 41
[passion_tag] => hip hop dancing
[description] => Hopping is Good
[datejoined] => 2011-08-23 12:41:55
[type] => personal
[passionImg] => UserPassion/Hiphop-Dance.jpg
)
)
[3] => Array
(
[id] => 45
[tag] => sky diving
[dateCreated] =>
[userDefined] => 1
[PassionsUser] => Array
(
[id] => 63
[user_id] => 41
[passion_tag] => sky diving
[description] => Dont splat the Earth
[datejoined] => 2011-09-07 06:59:43
[type] => personal
[passionImg] => UserPassion/Sky Diving.jpg
)
)
[4] => Array
(
[id] => 47
[tag] => tamil movies
[dateCreated] =>
[userDefined] => 1
[PassionsUser] => Array
(
[id] => 65
[user_id] => 41
[passion_tag] => tamil movies
[description] => Really interesting
[datejoined] => 2011-08-18 16:17:00
[type] => personal
[passionImg] => UserPassion/Tamil Movies.jpg
)
)
[5] => Array
(
[id] => 43
[tag] => teaching
[dateCreated] =>
[userDefined] => 1
[PassionsUser] => Array
(
[id] => 61
[user_id] => 41
[passion_tag] => teaching
[description] => Nothing beats this experience
[datejoined] => 2011-09-09 07:52:12
[type] => professional
[passionImg] => UserPassion/Teaching.jpg
)
)
)
)
Ответ №1:
Похоже, что это часть большего набора результатов, полученного с помощью $this->Model->find( 'all' )
, поэтому я предполагаю, что вы хотите отобразить все имена из этих результатов. Вы должны просмотреть все результаты, чтобы получить отдельные имена. Кроме того, у каждого пользователя есть несколько Увлечений, поэтому вам снова придется перебирать их, если вы хотите отобразить их все.
echo 'Our users and their passions are: <ul>';
foreach( $this->data as $user ) {
echo '<li>';
echo $user[ 'User' ][ 'firstName' ];
echo ' who is passionate about: ';
foreach( $user[ 'Passion' ] as $passion ) {
echo $passion[ 'PassionsUser' ][ 'passion_tag' ];
echo ' ';
}
echo '</li>';
}
echo '</ul>';
Комментарии:
1. ваши коды работают, я уже объявил $user как —> foreach ($ search_fields как $user) { } Как включить ваш другой цикл foreach
2. ваши коды также дублируют имя пользователя для каждой страсти, которая у него есть.
3. Вы должны использовать
$this->Model->find( 'first' )
, чтобы получить только одну запись, а не все. Имя пользователя не должно дублироваться ни в одном случае.
Ответ №2:
У Passion нет passion_tag
ключа, passion_tag
находится в PassionsUser
.
If $data
— это место, где хранятся все данные,
echo $data['User']['Passion'][0]['PassionsUser']['passion_tag'];//echo first result
Если вы хотите перечислить все, вам придется выполнить итерацию по PassionUser
массиву.