Help with CakePHP Model Relationships -


three simple tables...

  1. feedname (eg. news or events) names of rss feeds.
  2. posts belong feedname
  3. user, owns posts

i want use form helper automatically give me select box when add post can select feedname assign to.

it seems posts belong both feedname , user can't correct combination of belongsto , hasmany in model/ .php files. select box feedname shown, there nothing in it. can point me in right direction?

the tables @ moment:

create table `feednames` (   `id` int(10) unsigned not null auto_increment,   `name` varchar(50) collate utf8_unicode_ci default null,   `created` datetime default null,   `modified` datetime default null,   primary key (`id`) ) engine=myisam  default charset=utf8 collate=utf8_unicode_ci;  create table `posts` (   `id` int(10) unsigned not null auto_increment,   `title` varchar(50) collate utf8_unicode_ci default null,   `body` text collate utf8_unicode_ci,   `created` datetime default null,   `modified` datetime default null,   `user_id` int(10) unsigned not null default '1',   `feedname_id` int(10) unsigned not null default '1',   primary key (`id`),   key `foreign_key` (`user_id`) ) engine=myisam  default charset=utf8 collate=utf8_unicode_ci;  create table `users` (   `id` int(11) not null auto_increment,   `username` varchar(255) character set latin1 not null,   `password` char(40) character set latin1 not null,   `group_id` int(11) not null,   `created` datetime default null,   `modified` datetime default null,   primary key (`id`),   unique key `username` (`username`) ) engine=myisam  default charset=utf8 collate=utf8_unicode_ci; 

edit - adding model .php files ...

class feedname extends appmodel {     var $name = 'feedname';      var $hasmany = array(         'post' => array(             'classname' => 'post',             'foreignkey' => 'feedname_id',             'dependent' => false         )     ); }  class post extends appmodel {     var $name = 'post';      var $belongsto = array(         'user' => array(             'classname' => 'user',             'foreignkey' => 'user_id'         ),         'feedname' => array(             'foreignkey' => 'feedname_id'         )     ); }  class user extends appmodel {     var $name = 'user';      var $hasmany = array(         'post' => array(             'classname' => 'post',             'foreignkey' => 'user_id',             'dependent' => false         )     ); } 

edit - adding sql dump ** ...

/posts/index.ctp:

select count(*) count posts post left join users user on (post.user_id = user.id) left join feednames feedname on (post.feedname_id = feedname.id) 1 = 1

select post.id, post.title, post.body, post.created, post.modified, post.user_id, post.feedname_id, user.id, user.username, user.password, user.group_id, user.created, user.modified, feedname.id, feedname.name, feedname.created, feedname.modified posts post left join users user on (post.user_id = user.id) left join feednames feedname on (post.feedname_id = feedname.id) 1 = 1 order post.created desc limit 10

please note: /posts/add.ctp not produce sql dump, it's not getting select box options database, i'm trying fix proper model relationships.

do have in controller methods (e.g. admin_add / admin_edit functions)?

$feednames = $this->feedname->find('list'); $this->set('feednames', $feednames); 

cake should automatically populate select list these values. or can manually set values with:

$form->input('feedname_id', array('options' => $feednames)); 

Comments