I'm sorry that I am not able to test this at work at the moment, I am
swamped.  Did you make any headway?

On Feb 11, 6:25 pm, "Erich C. Beyrent" <[EMAIL PROTECTED]>
wrote:
> Your suggestions are great, but sadly, I've already tried combinations
> of a blank foreign key as well as a foreign key of 'id'.
>
> Example row from the states table:
>
> +------+---------------+-----+
> |id    |name           |code |
> +------+---------------+-----+
> |10    |new hampshire  |nh   |
> +------+---------------+-----+
>
> Example row from the registered_states table:
>
> +----------+
> | state_id |
> +----------+
> | 10       |
> +----------+
>
> -Erich-
>
> Christopher E. Franklin, Sr. wrote:
>
> > Well, it sounds good but, I always try to follow the K.I.S.S. method:
> > Keep It Simple Stupid.
>
> > I think the point now is not whether it is the "right way" or "wrong
> > way" but, rather, why is it not working...  if you or we can figure
> > this out and post our findings, I think we would both be better coders
> > for it.
>
> > Give me an example row from each database and I will test out your
> > code at work tomorrow.
>
> > One thing I did notice about your hasMany array:
>
> > from the example, this code:
>
> > <?php
> > class User extends AppModel
> > {
> >     var $name = 'User';
> >     var $hasOne = array('Profile' =>
> >                         array('className'    => 'Profile',
> >                               'conditions'   => '',
> >                               'order'        => '',
> >                               'dependent'    =>  true,
> >                               'foreignKey'   => 'user_id'
> >                         )
> >                   );
> > }
> > ?>
>
> > Outputs an array like:
>
> > Array
> > (
> >     [User] => Array
> >         (
> >             [id] => 25
> >             [first_name] => John
> >             [last_name] => Anderson
> >             [username] => psychic
> >             [password] => c4k3roxx
> >         )
>
> >     [Profile] => Array
> >         (
> >             [id] => 4
> >             [name] => Cool Blue
> >             [header_color] => aquamarine
> >             [user_id] = 25
> >         )
>
> > Notice the foreign key.  Let's say that user = registered_state and
> > profile = state.  Profile has a column with user_id.  You are using
> > state_id as your foreignKey yet, your table for state does not have a
> > state_id... just an id.  Try changing that foreign key for me to
> > either blank or just id.
> > )
>
> > --Chris
>
> > On Feb 11, 5:28 pm, "Erich C. Beyrent" <[EMAIL PROTECTED]>
> > wrote:
> >> 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 cake-php@googlegroups.com
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