I had added the belongsTo association to the states table, and that didn't make a difference - I got the same results.
Here's what I am trying to accomplish - visitors to the website must select their state of residency to continue, and that state needs to be validated against a list of registered states. In my current schema, I can accomplish the results I am looking for with this query: select code from states right join registered_states on registered_states.state_id = states.id This would give me a list like NH, MA, CT, RI, VT. I am looking for a way to do this through model associations and the findAll method. I know that I could also accomplish this by adding an isRegistered field to the states table with a value of 1 or 0, and then query on that. Perhaps that is simply the easiest solution. Like I said, I know that I can use a custom query, but that seems hackish when considering the capabilities of Cake. Any ideas? -Erich- Christopher E. Franklin, Sr. wrote: > If I am not mistaken, I believe the State model has to have an > association with RegisteredState model as well to get that backwards > compatibility. Take a look at the user and profile models in this > example. > > http://manual.cakephp.org/chapter/models > > If you notice, User hasOne Profile while Profile belongsTo User. > There is a definition in both models to get the expected return and > association. > > I don't know exactly what you are trying to accomplish but, if you do > a hasAndBelongsToMany, don't forget to make the Join table with the > name registered_states_states and just have two columns, one with > registered_state_id and the other with state_id. > > Tell me if this helps you any or, you can post back with what exactly > you are trying to do and how you envision the relationship between > state and registered_state. Are they sort of "tags" as in State: > Open, Closed? or Something else? > > In all, the only problem I can see right now with your code is you do > not have the backwards association in the State model. Try belongsTo. > > On Feb 11, 10:21 am, "Erich C. Beyrent" <[EMAIL PROTECTED]> > wrote: >> Here are my tables: >> >> CREATE TABLE `registered_states` ( >> `state_id` int(11) NOT NULL default '0', >> PRIMARY KEY (`state_id`) >> ) ENGINE=MyISAM DEFAULT CHARSET=latin1 >> >> CREATE TABLE `states` ( >> `id` int(11) NOT NULL auto_increment, >> `name` varchar(24) NOT NULL default '', >> `code` char(2) NOT NULL default '', >> PRIMARY KEY (`id`) >> ) ENGINE=MyISAM DEFAULT CHARSET=latin1 >> >> Models: >> >> // registered_state.php >> class RegisteredState extends AppModel >> { >> var $name = 'RegisteredState'; >> >> var $hasMany = array('State' => >> array('className' => 'State', >> 'conditions' => '', >> 'order' => '', >> 'limit' => '', >> 'foreignKey' => 'state_id', >> 'dependent' => false, >> 'exclusive' => false, >> 'finderQuery' => '' >> ) >> ); >> >> } >> >> // state.php >> class State extends AppModel >> { >> var $name = 'State'; >> var $validates = array('code' => VALID_NOT_EMPTY); >> >> } >> >> -Erich- >> >> Christopher E. Franklin, Sr. wrote: >> >>> Post your model code with the names of the files and where they are >>> located. >>> On Feb 10, 6:12 pm, "Erich C. Beyrent" <[EMAIL PROTECTED]> >>> wrote: >>>> That did not work - now I get: >>>> Array >>>> ( >>>> [0] => Array >>>> ( >>>> [RegisteredState] => Array >>>> ( >>>> [state_id] => 10 >>>> ) >>>> [State] => Array >>>> ( >>>> ) >>>> ) >>>> ) >>>> I know I can write my own custom query for this, but I am unsure as to >>>> why this isn't working for me. >>>> -Erich- >>>> djiize wrote: >>>>> in registered_states table, try state_id (not plural) >>>>> On 9 fév, 19:10, "Erich C. Beyrent" <[EMAIL PROTECTED]> wrote: >>>>>> I am trying to link two tables, states and registered_states. >>>>>> The states table has id, name, and code as fields, and registered_states >>>>>> has states_id. >>>>>> I defined as hasMany association in the registered_states model, and now >>>>>> want to produce a list of all the registered states and their associated >>>>>> state. >>>>>> I'm getting the list of registered states, but no state data: >>>>>> Array >>>>>> ( >>>>>> [0] => Array >>>>>> ( >>>>>> [RegisteredState] => Array >>>>>> ( >>>>>> [states_id] => 10 >>>>>> ) >>>>>> [State] => Array >>>>>> ( >>>>>> ) >>>>>> ) >>>>>> ) >>>>>> What I'm particularly interested in retrieving is the state code for >>>>>> each registered state. >>>>>> How can I accomplish this? >>>>>> -Erich- > > > > --~--~---------~--~----~------------~-------~--~----~ You received this message because you are subscribed to the Google Groups "Cake PHP" 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 -~----------~----~----~----~------~----~------~--~---
