01.18 php saved
kain
Tags add more
recursion in cake 1.  
Note
querying Blog model to fetch User.UserGroup or User.UserState doesn't work anymore.
  1.     function index() {
  2.         $limit = $this->preferences['limit_blogposts_in_index'];
  3.         $this->Blog->recursive = 2;
  4.         $this->paginate = array('limit' => $limit, 'order' => 'Blog.created DESC');
  5.         $this->set('posts', $this->paginate(null, array('Blog.published = 1')));
  6.     }
  7.  
  8. example result:
  9.  
  10. (
  11.     [0] => Array
  12.         (
  13.             [Blog] => Array
  14.                 (
  15.                     [id] => 5
  16.                     [user_id] => 1
  17.                     [title] => Aggiornamento sulla versione stabile
  18.                     [body] => Salve a tutti,
  19.                     [url] => aggiornamento_sulla_versione_stabile
  20.                     [created] => 2007-01-15 17:00:53
  21.                     [published] => 1
  22.                 )
  23.  
  24.             [User] => Array
  25.                 (
  26.                     [id] => 1
  27.                     [userstate_id] => 1
  28.                     [usergroup_id] => 1
  29.                     [language_id] => 0
  30.                     [username] => kain
  31.                     [password] => d65be92f2drdb01d4517636b3cbbf6e9
  32.                     [email] => claudio@kuht.it
  33.  
  34.                 )
  35.  
  36.         )
  37.  
  38. should be
  39.  
  40.             [User] => Array
  41.                 (
  42.                     [id] => 1
  43.                     [userstate_id] => 1
  44.                     [usergroup_id] => 1
  45.                     [language_id] => 0
  46.                     [username] => kain
  47.                     [password] => d65be92f2drdb01d4517636b3cbbf6e9
  48.                     [email] => claudio@kuht.it
  49.  
  50.                 )
  51. [UserGroup] etc
  52.  
  53.  
  54. CREATE TABLE `users` (
  55.   `id` int(11) NOT NULL auto_increment,
  56.   `userstate_id` int(2) NOT NULL default '2',
  57.   `usergroup_id` int(10) unsigned NOT NULL default '0',
  58.   `language_id` int(2) NOT NULL,
  59.   `username` varchar(120) collate utf8_unicode_ci NOT NULL,
  60.   `password` varchar(32) collate utf8_unicode_ci NOT NULL,
  61.   `email` varchar(120) collate utf8_unicode_ci NOT NULL,
  62.   PRIMARY KEY  (`id`),
  63.   KEY `username` (`username`,`email`)
  64. ) ENGINE=MyISAM DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci AUTO_INCREMENT=103 ;
  65.  
  66. CREATE TABLE `blogs` (
  67.   `id` int(11) NOT NULL auto_increment,
  68.   `user_id` int(11) NOT NULL default '0',
  69.   `title` varchar(255) character set utf8 NOT NULL default '',
  70.   `body` text character set utf8 NOT NULL,
  71.   `url` varchar(255) character set utf8 NOT NULL default '',
  72.   `created` datetime NOT NULL default '0000-00-00 00:00:00',
  73.   `published` tinyint(1) NOT NULL,
  74.   PRIMARY KEY  (`id`),
  75.   KEY `user_id` (`user_id`)
  76. ) ENGINE=MyISAM DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci AUTO_INCREMENT=6 ;
  77.  
  78. CREATE TABLE `user_groups` (
  79.   `id` int(10) unsigned NOT NULL auto_increment,
  80.   `name` varchar(20) default NULL,
  81.   PRIMARY KEY  (`id`)
  82. ) ENGINE=MyISAM DEFAULT CHARSET=utf8 AUTO_INCREMENT=4 ;
  83.  
  84. class User extends AppModel {
  85.     var $name = 'User';
  86.  
  87.     var $displayField = 'username';
  88.  
  89.     var $belongsTo = array(
  90.         'UserGroup' => array(
  91.             'className' => 'UserGroup'
  92.         ),
  93.         'UserState' => array(
  94.             'className' => 'UserState'
  95.         )
  96.     );
  97.  
  98. class Blog extends AppModel {
  99.     var $name = 'Blog';
  100.  
  101.     var $belongsTo = array(
  102.         'User' => array('className' => 'User')
  103.     );
Parsed in 0.151 seconds, using GeSHi 1.0.7.14

Modify this Paste