any  ideas ???

On Apr 19, 10:33 am, senser <[EMAIL PROTECTED]> wrote:
> Hello!
>
> I have fivemodels: Offers, Category, CategoryI18n, Unit & UnitI18n
> and they're associated as follows:
>
> Offer--belongsTo-->Category
> Offer--belongsTo-->Unit
> Category--hasMany-->CategoryI18n
> Unit--hasMany-->UnitI18n
>
> and here is the code frommodels:
>
> ### filemodels/offer.php ###
> class Offer extends AppModel{
>
>         var $name='Offer';
>         var $recursive=2;
>
>         var $belongsTo=array('Unit'=>array('className'=>'Unit',
>                                                                         
> 'conditions'=>'',
>                                                                         
> 'order'=>'',
>                                                                         
> 'dependent'=>true,
>                                                                         
> 'foreignKey'=>'unit_id',
>                                                                         
> 'finderQuery'=>'',
>                                                                         
> 'fields'=>array(),
>                                                                         
> 'exclusive'=>false),
>
>                                         
> 'Category'=>array('className'=>'Category',
>                                                                         
> 'conditions'=>'',
>                                                                         
> 'order'=>'',
>                                                                         
> 'dependent'=>true,
>                                                                         
> 'foreignKey'=>'category_id',
>                                                                         
> 'finderQuery'=>'',
>                                                                         
> 'fields'=>array(),
>                                                                         
> 'exclusive'=>false));
>
> }
>
> ########################
>
> ### filemodels/category.php ###
> class Category extends AppModel{
>
>         var $name='Category';
>         var $recursive=2;
>
>         var $hasMany=array('CategoryI18n'=>array('className'=>'CategoryI18n',
>                                                                               
>   'conditions'=>'',
>                                                                               
>   'order'=>'CategoryI18n.locale DESC',
>                                                                               
>   'dependent'=>true,
>                                                                               
>   'foreignKey'=>'category_id',
>                                                                               
>   'finderQuery'=>'',
>                                                                               
>   'fields'=>array(),
>                                                                               
>   'exclusive'=>false));}
>
> ########################
>
> ### filemodels/unit.php ###
> class Unit extends AppModel{
>
>         var $name='Unit';
>         var $recursive=2;
>
>         var $hasMany=array('UnitI18n'=>array('className'=>'UnitI18n',
>                                                                               
>   'conditions'=>'',
>                                                                               
>   'order'=>'UnitI18n.locale DESC',
>                                                                               
>   'dependent'=>true,
>                                                                               
>   'foreignKey'=>'unit_id',
>                                                                               
>   'finderQuery'=>'',
>                                                                               
>   'fields'=>array(),
>                                                                               
>   'exclusive'=>false));}
>
> ########################
>
> So when I try to fetch some offers recursively, I get the CategoryI18n
> results, but not UnitI18n.
> As you can see from the code, bothmodels(Category & Unit) arerelatedto Offer 
> in same manner, and UnitI18n & CategoryI18n
> respectively arerelatedto Unit & Category.
>
> $this->Offer->findAll(array(), array(), 'Offer.last_edit_date DESC',
> 1, 1, 2); returns this:
>
> Array
> (
>     [0] => Array
>         (
>             [Offer] => Array
>                 (
>                     [id] => 4
>                     [category_id] => 2
>                     [type_id] => 1
>                     [status_id] => 2
>                     [country_id] => 4
>                     [region_id] =>
>                     [settlement_id] =>
>                     [district_id] =>
>                     [qunatity] => 0
>                     [unit_id] => 1
>                     [currency_id] => 1
>                     [price_per_unit] =>
>                     [price_1] => 123
>                     [price_2] => 234
>                     [date] => 2008-04-18 13:51:48
>                     [last_edit_date] => 2008-04-18 13:51:48
>                 )
>
>             [Unit] => Array
>                 (
>                     [id] => 1
>                 )
> [Category] => Array
>                 (
>                     [id] => 2
>                     [category_id] => 1
>                     [CategoryI18n] => Array
>                         (
>                             [0] => Array
>                                 (
>                                     [id] => 4
>                                     [category_id] => 2
>                                     [locale] => bul
>                                     [content] => 1-стайни
>                                 )
>
>                             [1] => Array
>                                 (
>                                     [id] => 3
>                                     [category_id] => 2
>                                     [locale] => eng
>                                     [content] => 1-room
>                                 )
>
>                         )
>
>                 )
> )
>
> So Categories are fetched recursively but Units NOT.
> And finally my biggest confusion is the fact that actually Cake runs
> SQL queries for fetching UnitI18n as CategoryI18n but the result is
> missing in the array
>
> Here is what controller produces as SQL statements:
>
> SELECT `Unit`.`id` FROM `units` AS `Unit` WHERE `Unit`.`id` = 1
> SELECT `UnitI18n`.`id`, `UnitI18n`.`unit_id`, `UnitI18n`.`locale`,
> `UnitI18n`.`content` FROM `unit_i18ns` AS `UnitI18n` WHERE
> `UnitI18n`.`unit_id` IN (1) ORDER BY `UnitI18n`.`locale` DESC
> SELECT `Category`.`id`, `Category`.`category_id` FROM `categories` AS
> `Category` WHERE `Category`.`id` = 2
> SELECT `CategoryI18n`.`id`, `CategoryI18n`.`category_id`,
> `CategoryI18n`.`locale`, `CategoryI18n`.`content` FROM
> `category_i18ns` AS `CategoryI18n` WHERE `CategoryI18n`.`category_id`
> IN (2) ORDER BY `CategoryI18n`.`locale` DESC
--~--~---------~--~----~------------~-------~--~----~
You received this message because you are subscribed to the Google Groups 
"CakePHP" group.
To post to this group, send email to [email protected]
To unsubscribe from this group, send email to [EMAIL PROTECTED]
For more options, visit this group at 
http://groups.google.com/group/cake-php?hl=en
-~----------~----~----~----~------~----~------~--~---

Reply via email to