Список форумов Cake-PHP.ru Cake-PHP.ru
Форум программистов CakePHP
(на сайт)
 
 Watched TopicsWatched Topics   FAQFAQ   ПоискПоиск   ПользователиПользователи   ГруппыГруппы   РегистрацияРегистрация 
 ПрофильПрофиль   Войти и проверить личные сообщенияВойти и проверить личные сообщения   ВходВход 

не получается HABTM

 
Начать новую тему   Ответить на тему    Список форумов Cake-PHP.ru -> Общий
Предыдущая тема :: Следующая тема  
Автор Сообщение
sprite

цитировать



Зарегистрирован: 28 Мар 2008 15:59:20
Сообщения: 3

СообщениеДобавлено: 18 Июн 2008 13:21:58    Заголовок сообщения: не получается HABTM Ответить с цитатой

Добрый день.
Имеются 2 таблицы users и publishings (пользователи и издания). Для связи между ними есть таблица users_publishings, которая содержит user_id и publishing_id. Bake для модели Publishing прописал вот такую ассоциацию
Код:

var $hasAndBelongsToMany = array(
         'User' => array('className' => 'User',
                  'joinTable' => 'users_publishings',
                  'foreignKey' => 'publishing_id',
                  'associationForeignKey' => 'user_id',
                  'unique' => true,
                  ...
         ))

далее в контролере делаю
Код:

            $publishing=$this->Publishing->findAll();
            $this->set('publishing', $publishing);

и на выходе получаю
Код:
Array
(
    [0] => Array
        (
            [Publishing] => Array
                (
                    [id] => 1
                    [publisher_id] => 4
                    ...
                )
            [Publisher] => Array
                (
                    [id] => 4
                    [address] =>
                    [foundation] =>
                    ...
                )
            [User] => Array
                (
                )
        )
    [1] => Array
        (
            [Publishing] => Array
                (
                    [id] => 2
                    [publisher_id] => 5
                    ...
                )

            [Publisher] => Array
                (
                    [id] => 5
                    ...
                )
            [User] => Array
                (
                )
        )
    [2] => Array
        (
            [Publishing] => Array
                (
                    [id] => 3
                    [publisher_id] => 1
                    ...
                )
            [Publisher] => Array
                (
                    [id] => 1
                    ...
                )
            [User] => Array
                (
                )
        )
)

массив User пустой Sad почему он не наполнился? (в таблице записи есть), из вывода также видно что ассоциация belongsTo к таблице publishers работает отлично, увеличивая рекурсивность выборки, выдаются дальнейшие ассоциации модели publisher, а ассоциация piblishing с user пустая. Что делать, куда копать? Cake последний 1.2
Вернуться к началу
Посмотреть профиль Отправить личное сообщение
Hellbot

цитировать



Зарегистрирован: 19 Май 2008 16:29:15
Сообщения: 34

СообщениеДобавлено: 20 Июн 2008 15:43:03    Заголовок сообщения: Ответить с цитатой

Покажите запрос который генерирует cake
Вернуться к началу
Посмотреть профиль Отправить личное сообщение
sprite

цитировать



Зарегистрирован: 28 Мар 2008 15:59:20
Сообщения: 3

СообщениеДобавлено: 20 Июн 2008 17:49:01    Заголовок сообщения: Ответить с цитатой

вот такие два запроса
Код:

SELECT `Publishing`.`id`, `Publishing`.`publisher_id`, `Publishing`.`type`, `Publishing`.`who`, `Publishing`.`year`, `Publishing`.`regularity`, `Publishing`.`printing`, `Publishing`.`volume`, `Publishing`.`format`, `Publishing`.`color`, `Publishing`.`soft`, `Publishing`.`price`, `Publishing`.`head_publisher`, `Publishing`.`archiv_publisher`, `Publishing`.`name`, `Publisher`.`id`, `Publisher`.`address`, `Publisher`.`foundation`, `Publisher`.`user_id`, `Publisher`.`email`, `Publisher`.`phone`, `Publisher`.`name` FROM `publishings` AS `Publishing` LEFT JOIN `publishers` AS `Publisher` ON (`Publishing`.`publisher_id` = `Publisher`.`id`) WHERE 1 = 1

SELECT `User`.`id`, `User`.`created`, `User`.`updated`, `User`.`username`, `User`.`password`, `User`.`email`, `User`.`is_active`, `User`.`activation_token`, `User`.`is_admin`, `UsersPublishing`.`id`, `UsersPublishing`.`user_id`, `UsersPublishing`.`publishing_id`, `UsersPublishing`.`official` FROM `users` AS `User` JOIN `users_publishings` AS `UsersPublishing` ON ((`UsersPublishing`.`publishing_id` IN (1, 2, 3, 4)) AND (`UsersPublishing`.`user_id` = `User`.`id`))
Вернуться к началу
Посмотреть профиль Отправить личное сообщение
Hellbot

цитировать



Зарегистрирован: 19 Май 2008 16:29:15
Сообщения: 34

СообщениеДобавлено: 23 Июн 2008 20:18:04    Заголовок сообщения: Ответить с цитатой

sprite
А второй запрос будучи выполненый скажем через phpmyadmin (любой стронний продукт) имеет результат или нет ?
Вернуться к началу
Посмотреть профиль Отправить личное сообщение
Имя
Сообщение

Смайлики
Very Happy Smile Sad Surprised
Shocked Confused Cool Laughing
Mad Razz Embarassed Crying or Very sad
Evil or Very Mad Twisted Evil Rolling Eyes Wink
Exclamation Question Idea Arrow
Дополнительные смайлики

 
Показать сообщения:   
Начать новую тему   Ответить на тему    Список форумов Cake-PHP.ru -> Общий Часовой пояс: GMT + 3
Страница 1 из 1

 
Перейти:  
Вы можете начинать темы
Вы можете отвечать на сообщения
Вы можете редактировать свои сообщения
Вы можете удалять свои сообщения
Вы не можете голосовать в опросах


Powered by phpBB © 2001, 2005 phpBB Group
Русская поддержка phpBB

Рейтинг@Mail.ru