Как отобразить результаты из набора результатов в CakePHP? - PullRequest
0 голосов
/ 19 октября 2011

У меня есть следующие коды, я добавил отладку, и это данные, которые я могу получить из базы данных. Я хочу отобразить ['User']['firstName'], а также ['Passion']['passion_tag'] на странице просмотра, как мне это сделать? Я сталкиваюсь с ошибкой, такой как:

Примечание (8): неопределенный индекс: passion_tag [APP \ views \ search \ simple_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
                                )

                        )

                )

        )

Ответы [ 2 ]

1 голос
/ 19 октября 2011

Похоже, что это часть большего результирующего набора, полученного с помощью $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 голос
/ 19 октября 2011

Passion не имеет ключа passion_tag, passion_tag находится в PassionsUser.

Если $data - это место, где хранятся все данные,

echo $data['User']['Passion'][0]['PassionsUser']['passion_tag'];//echo first result

Если вы хотите перечислить все, вам придется перебирать массив PassionUser.

...