Re: Simple relationship problem

2009-06-30 Thread Bryan Paddock

Hey JD,

Ah... I'm confused as to why I would need a HABTM and a join table for
a fairly simple relationship.

example of the structure:

Seller.id
Seller.name
Seller.agency_id
etc

and

Agency.id
Agency.name
etc

Each seller can only belong to one agency.
Each agency can have any number of sellers.

I've defined $hasOne and $belongsTo but cake complains that there is
no agency.seller_id field which is correct because that would imply
that each agency can only have one seller.

Hm.

On Mon, Jun 29, 2009 at 8:25 PM, JD Danielsj...@internetguys.ca wrote:
 You need to look at hasAndBelongsToMany

 http://book.cakephp.org/view/83/hasAndBelongsToMany-HABTM

 Bryan Paddock wrote:

 Argh.. I hate gmail shortcut keys.

 Anyways continuing mail:

 Heya all,

 Theres something I'm not doing right here...

 I have a User model which has one Seller model linked to it which in
 turn can have an Agency model linked to it.

 User Model:
 hasOne seller.

 Seller Model:
  belongsTo user

 Agency Model:
 belongsTo seller

 Now when I call $this-User-find('all') it complains that there is no
 foreign key in the agency table. That would be impossible because then
 that would mean only one agency can belong to one seller.

 How do I set it up so that any number of agencies can belong to any
 number of sellers? I'm missing something really stupid here

 Thanks!

 Bryan






 On Mon, Jun 29, 2009 at 7:06 PM, Bryan Paddockbryanpadd...@gmail.com
 wrote:


 Heya all,

 Theres something I'm not doing right here...

 I have a User model which has one Seller model linked to it which in
 turn can have an Agency model linked to it.

 User Model:
 hasOne seller.
 Seller Model: belongsTo user
 Agency Model: belongsTo seller





 


--~--~-~--~~~---~--~~
You received this message because you are subscribed to the Google Groups 
CakePHP group.
To post to this group, send email to cake-php@googlegroups.com
To unsubscribe from this group, send email to 
cake-php+unsubscr...@googlegroups.com
For more options, visit this group at 
http://groups.google.com/group/cake-php?hl=en
-~--~~~~--~~--~--~---



Re: Simple relationship problem

2009-06-30 Thread Carlos Gonzalez Lavin
How about:
*Seller Model:
*
*belongsTo agency*
*
*
*Agency Model:
**hasMany seller*
*
*
Because Agency doesn't really belong to the seller... an agency has many
sellers (if I understand you correctly) and a seller belongs to an agency


2009/6/30 Bryan Paddock bryanpadd...@gmail.com


 Hey JD,

 Ah... I'm confused as to why I would need a HABTM and a join table for
 a fairly simple relationship.

 example of the structure:

 Seller.id
 Seller.name
 Seller.agency_id
 etc

 and

 Agency.id
 Agency.name
 etc

 Each seller can only belong to one agency.
 Each agency can have any number of sellers.

 I've defined $hasOne and $belongsTo but cake complains that there is
 no agency.seller_id field which is correct because that would imply
 that each agency can only have one seller.

 Hm.

 On Mon, Jun 29, 2009 at 8:25 PM, JD Danielsj...@internetguys.ca wrote:
  You need to look at hasAndBelongsToMany
 
  http://book.cakephp.org/view/83/hasAndBelongsToMany-HABTM
 
  Bryan Paddock wrote:
 
  Argh.. I hate gmail shortcut keys.
 
  Anyways continuing mail:
 
  Heya all,
 
  Theres something I'm not doing right here...
 
  I have a User model which has one Seller model linked to it which in
  turn can have an Agency model linked to it.
 
  User Model:
  hasOne seller.
 
  Seller Model:
   belongsTo user
 
  Agency Model:
  belongsTo seller
 
  Now when I call $this-User-find('all') it complains that there is no
  foreign key in the agency table. That would be impossible because then
  that would mean only one agency can belong to one seller.
 
  How do I set it up so that any number of agencies can belong to any
  number of sellers? I'm missing something really stupid here
 
  Thanks!
 
  Bryan
 
 
 
 
 
 
  On Mon, Jun 29, 2009 at 7:06 PM, Bryan Paddockbryanpadd...@gmail.com
  wrote:
 
 
  Heya all,
 
  Theres something I'm not doing right here...
 
  I have a User model which has one Seller model linked to it which in
  turn can have an Agency model linked to it.
 
  User Model:
  hasOne seller.
  Seller Model: belongsTo user
  Agency Model: belongsTo seller
 
 
 
 
 
  
 

 


--~--~-~--~~~---~--~~
You received this message because you are subscribed to the Google Groups 
CakePHP group.
To post to this group, send email to cake-php@googlegroups.com
To unsubscribe from this group, send email to 
cake-php+unsubscr...@googlegroups.com
For more options, visit this group at 
http://groups.google.com/group/cake-php?hl=en
-~--~~~~--~~--~--~---



Re: Simple relationship problem

2009-06-30 Thread Travis L

Carlos is right, but he was a little implicit in his answer.

The short answer is that the Agency belongsTo Seller means that each
agency belongs to only one seller.  It wants a seller_id field in the
agency table (which is how the relationship is linked).

From what I understand, you want the Seller to belongTo an agency (so
sellers table will need an agency_id in it), and you want the agency
model to contain a hasMany sellers relationship (necessitating an
agency_id foreign key in the sellers table).  So try the hasMany.

BTW, you only need to define the relationships both ways if you need
to access things in the opposite direction.  So, you could do a
sellers belongsTo agency, but you don't necessarily need the opposite
relationship UNLESS you want to retrieve associated sellers during a
query on the agency model.  But it's a good practice to do so, because
the database cost to crosslink the two is only one more INT field.

If you need the capability for a seller to belong to many agencies,
you'll need the HABTM.  Which will require a join table
(agencys_sellers).  And it will likely mean you'll need the
Containable behavior in some of your stuff too.

On Jun 30, 7:36 am, Carlos Gonzalez Lavin carloslavi...@gmail.com
wrote:
 How about:
 *Seller Model:
 *
 *belongsTo agency*
 *
 *
 *Agency Model:
 **hasMany seller*
 *
 *
 Because Agency doesn't really belong to the seller... an agency has many
 sellers (if I understand you correctly) and a seller belongs to an agency

 2009/6/30 Bryan Paddock bryanpadd...@gmail.com



  Hey JD,

  Ah... I'm confused as to why I would need a HABTM and a join table for
  a fairly simple relationship.

  example of the structure:

  Seller.id
  Seller.name
  Seller.agency_id
  etc

  and

  Agency.id
  Agency.name
  etc

  Each seller can only belong to one agency.
  Each agency can have any number of sellers.

  I've defined $hasOne and $belongsTo but cake complains that there is
  no agency.seller_id field which is correct because that would imply
  that each agency can only have one seller.

  Hm.

  On Mon, Jun 29, 2009 at 8:25 PM, JD Danielsj...@internetguys.ca wrote:
   You need to look at hasAndBelongsToMany

  http://book.cakephp.org/view/83/hasAndBelongsToMany-HABTM

   Bryan Paddock wrote:

   Argh.. I hate gmail shortcut keys.

   Anyways continuing mail:

   Heya all,

   Theres something I'm not doing right here...

   I have a User model which has one Seller model linked to it which in
   turn can have an Agency model linked to it.

   User Model:
   hasOne seller.

   Seller Model:
    belongsTo user

   Agency Model:
   belongsTo seller

   Now when I call $this-User-find('all') it complains that there is no
   foreign key in the agency table. That would be impossible because then
   that would mean only one agency can belong to one seller.

   How do I set it up so that any number of agencies can belong to any
   number of sellers? I'm missing something really stupid here

   Thanks!

   Bryan

   On Mon, Jun 29, 2009 at 7:06 PM, Bryan Paddockbryanpadd...@gmail.com
   wrote:

   Heya all,

   Theres something I'm not doing right here...

   I have a User model which has one Seller model linked to it which in
   turn can have an Agency model linked to it.

   User Model:
   hasOne seller.
   Seller Model: belongsTo user
   Agency Model: belongsTo seller
--~--~-~--~~~---~--~~
You received this message because you are subscribed to the Google Groups 
CakePHP group.
To post to this group, send email to cake-php@googlegroups.com
To unsubscribe from this group, send email to 
cake-php+unsubscr...@googlegroups.com
For more options, visit this group at 
http://groups.google.com/group/cake-php?hl=en
-~--~~~~--~~--~--~---



Re: Simple relationship problem

2009-06-30 Thread Carlos Gonzalez Lavin
What Travis said :)

2009/6/30 Travis L lele...@gmail.com


 Carlos is right, but he was a little implicit in his answer.

 The short answer is that the Agency belongsTo Seller means that each
 agency belongs to only one seller.  It wants a seller_id field in the
 agency table (which is how the relationship is linked).

 From what I understand, you want the Seller to belongTo an agency (so
 sellers table will need an agency_id in it), and you want the agency
 model to contain a hasMany sellers relationship (necessitating an
 agency_id foreign key in the sellers table).  So try the hasMany.

 BTW, you only need to define the relationships both ways if you need
 to access things in the opposite direction.  So, you could do a
 sellers belongsTo agency, but you don't necessarily need the opposite
 relationship UNLESS you want to retrieve associated sellers during a
 query on the agency model.  But it's a good practice to do so, because
 the database cost to crosslink the two is only one more INT field.

 If you need the capability for a seller to belong to many agencies,
 you'll need the HABTM.  Which will require a join table
 (agencys_sellers).  And it will likely mean you'll need the
 Containable behavior in some of your stuff too.

 On Jun 30, 7:36 am, Carlos Gonzalez Lavin carloslavi...@gmail.com
 wrote:
  How about:
  *Seller Model:
  *
  *belongsTo agency*
  *
  *
  *Agency Model:
  **hasMany seller*
  *
  *
  Because Agency doesn't really belong to the seller... an agency has many
  sellers (if I understand you correctly) and a seller belongs to an agency
 
  2009/6/30 Bryan Paddock bryanpadd...@gmail.com
 
 
 
   Hey JD,
 
   Ah... I'm confused as to why I would need a HABTM and a join table for
   a fairly simple relationship.
 
   example of the structure:
 
   Seller.id
   Seller.name
   Seller.agency_id
   etc
 
   and
 
   Agency.id
   Agency.name
   etc
 
   Each seller can only belong to one agency.
   Each agency can have any number of sellers.
 
   I've defined $hasOne and $belongsTo but cake complains that there is
   no agency.seller_id field which is correct because that would imply
   that each agency can only have one seller.
 
   Hm.
 
   On Mon, Jun 29, 2009 at 8:25 PM, JD Danielsj...@internetguys.ca
 wrote:
You need to look at hasAndBelongsToMany
 
   http://book.cakephp.org/view/83/hasAndBelongsToMany-HABTM
 
Bryan Paddock wrote:
 
Argh.. I hate gmail shortcut keys.
 
Anyways continuing mail:
 
Heya all,
 
Theres something I'm not doing right here...
 
I have a User model which has one Seller model linked to it which in
turn can have an Agency model linked to it.
 
User Model:
hasOne seller.
 
Seller Model:
 belongsTo user
 
Agency Model:
belongsTo seller
 
Now when I call $this-User-find('all') it complains that there is
 no
foreign key in the agency table. That would be impossible because
 then
that would mean only one agency can belong to one seller.
 
How do I set it up so that any number of agencies can belong to any
number of sellers? I'm missing something really stupid here
 
Thanks!
 
Bryan
 
On Mon, Jun 29, 2009 at 7:06 PM, Bryan Paddock
 bryanpadd...@gmail.com
wrote:
 
Heya all,
 
Theres something I'm not doing right here...
 
I have a User model which has one Seller model linked to it which in
turn can have an Agency model linked to it.
 
User Model:
hasOne seller.
Seller Model: belongsTo user
Agency Model: belongsTo seller
 


--~--~-~--~~~---~--~~
You received this message because you are subscribed to the Google Groups 
CakePHP group.
To post to this group, send email to cake-php@googlegroups.com
To unsubscribe from this group, send email to 
cake-php+unsubscr...@googlegroups.com
For more options, visit this group at 
http://groups.google.com/group/cake-php?hl=en
-~--~~~~--~~--~--~---



Re: Simple relationship problem

2009-06-29 Thread Bryan Paddock

Argh.. I hate gmail shortcut keys.

Anyways continuing mail:

Heya all,

Theres something I'm not doing right here...

I have a User model which has one Seller model linked to it which in
turn can have an Agency model linked to it.

User Model:
hasOne seller.

Seller Model:
 belongsTo user

Agency Model:
belongsTo seller

Now when I call $this-User-find('all') it complains that there is no
foreign key in the agency table. That would be impossible because then
that would mean only one agency can belong to one seller.

How do I set it up so that any number of agencies can belong to any
number of sellers? I'm missing something really stupid here

Thanks!

Bryan






On Mon, Jun 29, 2009 at 7:06 PM, Bryan Paddockbryanpadd...@gmail.com wrote:
 Heya all,

 Theres something I'm not doing right here...

 I have a User model which has one Seller model linked to it which in
 turn can have an Agency model linked to it.

 User Model:
 hasOne seller.
 Seller Model: belongsTo user
 Agency Model: belongsTo seller


--~--~-~--~~~---~--~~
You received this message because you are subscribed to the Google Groups 
CakePHP group.
To post to this group, send email to cake-php@googlegroups.com
To unsubscribe from this group, send email to 
cake-php+unsubscr...@googlegroups.com
For more options, visit this group at 
http://groups.google.com/group/cake-php?hl=en
-~--~~~~--~~--~--~---



Re: Simple relationship problem

2009-06-29 Thread JD Daniels
You need to look at hasAndBelongsToMany

http://book.cakephp.org/view/83/hasAndBelongsToMany-HABTM

Bryan Paddock wrote:
 Argh.. I hate gmail shortcut keys.

 Anyways continuing mail:

 Heya all,

 Theres something I'm not doing right here...

 I have a User model which has one Seller model linked to it which in
 turn can have an Agency model linked to it.

 User Model:
 hasOne seller.

 Seller Model:
  belongsTo user

 Agency Model:
 belongsTo seller

 Now when I call $this-User-find('all') it complains that there is no
 foreign key in the agency table. That would be impossible because then
 that would mean only one agency can belong to one seller.

 How do I set it up so that any number of agencies can belong to any
 number of sellers? I'm missing something really stupid here

 Thanks!

 Bryan






 On Mon, Jun 29, 2009 at 7:06 PM, Bryan Paddockbryanpadd...@gmail.com wrote:
   
 Heya all,

 Theres something I'm not doing right here...

 I have a User model which has one Seller model linked to it which in
 turn can have an Agency model linked to it.

 User Model:
 hasOne seller.
 Seller Model: belongsTo user
 Agency Model: belongsTo seller

 

 
   


--~--~-~--~~~---~--~~
You received this message because you are subscribed to the Google Groups 
CakePHP group.
To post to this group, send email to cake-php@googlegroups.com
To unsubscribe from this group, send email to 
cake-php+unsubscr...@googlegroups.com
For more options, visit this group at 
http://groups.google.com/group/cake-php?hl=en
-~--~~~~--~~--~--~---