hasMany / belongsTo not working

2013-07-30 Thread WhyNotSmile
I have a pretty simple pair of objects, Photo and Album, defined as follows:

 class Album extends Model {
 public $name = 'Album';

 public $hasMany = array(
 'Photo' = array(
 'className' = 'Photo',
 'order' = 'Photo.order ASC'
 )
 );
 }

 


class Photo extends Model {
 public $name = 'Photo';
 public $belongsTo = array('Album');
 }


I currently have 3 albums, one with 0 photos, one with 1 photo, and one 
with 2 photos.  When I do the following in the controller, I expect to get 
3 albums back:

$albumlist = $this-Album-find('all');
 debug($albumlist);


But in fact, I get 4 - the one with 2 photos is shown twice.  If I had 
another photo, I get the album back 3 times.  I'm absolutely stumped as to 
what's causing this, and have a feeling it must be something really stupid 
that I've done.  I've set up much more complex models than this in the 
past, with no problems.

Also, when I try to retrieve a photo, I don't get the associated album 
back, just the photo itself.

Can anyone see anything wrong in what I've got so far?

Thanks!

-- 
Like Us on FaceBook https://www.facebook.com/CakePHP
Find us on Twitter http://twitter.com/CakePHP

--- 
You received this message because you are subscribed to the Google Groups 
CakePHP group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to cake-php+unsubscr...@googlegroups.com.
To post to this group, send email to cake-php@googlegroups.com.
Visit this group at http://groups.google.com/group/cake-php.
For more options, visit https://groups.google.com/groups/opt_out.




Re: hasMany / belongsTo not working

2013-07-30 Thread Marcelo F Andrade
On Tue, Jul 30, 2013 at 6:50 AM, WhyNotSmile sharongilmor...@gmail.com wrote:
 I have a pretty simple pair of objects, Photo and Album, defined as follows:

 class Album extends Model {
 public $name = 'Album';

 public $hasMany = array(
 'Photo' = array(
 'className' = 'Photo',
 'order' = 'Photo.order ASC'
 )
 );
 }

 class Photo extends Model {
 public $name = 'Photo';
 public $belongsTo = array('Album');
 }


 I currently have 3 albums, one with 0 photos, one with 1 photo, and one with
 2 photos.  When I do the following in the controller, I expect to get 3
 albums back:

 $albumlist = $this-Album-find('all');
 debug($albumlist);

 But in fact, I get 4 - the one with 2 photos is shown twice.  If I had
 another photo, I get the album back 3 times.  I'm absolutely stumped as to
 what's causing this, and have a feeling it must be something really stupid
 that I've done.  I've set up much more complex models than this in the past,
 with no problems.

Did you inserted the records using those CakePHP models?

Is your database modeled properly?

How the related SQL queries looks like in debug mode?

Check if you get the same information querying the database directly
with something like this (assuming the standard conventions) in your
SGBD query prompt.

SELECT p.*
FROM photos p INNER JOIN albums a
ON (p.album_id=a.id)

Assuming you followed the standard conventions and just for a debugging
purpose, try to simplify your associations and redo the tests.

// Album
public $hasMany = 'Photo';

// Photo
public $belongsTo = 'Album';

Hope it helps.

MARCELO DE FREITAS ANDRADE
https://mailstrom.co/mfandrade

-- 
Like Us on FaceBook https://www.facebook.com/CakePHP
Find us on Twitter http://twitter.com/CakePHP

--- 
You received this message because you are subscribed to the Google Groups 
CakePHP group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to cake-php+unsubscr...@googlegroups.com.
To post to this group, send email to cake-php@googlegroups.com.
Visit this group at http://groups.google.com/group/cake-php.
For more options, visit https://groups.google.com/groups/opt_out.




Re: DropDown list fields for HasMany-BelongsTo association

2013-04-26 Thread Saran Pal
Hi Ahmed,

Its simple, you may edit the User model, where its return the drop down
values array, you can change the field name as you want.

If feels difficulty then share you code.

Cheers!..

Saran


On Tue, Apr 23, 2013 at 12:06 PM, Ahmed Abdelsalam
amabdelsa...@gmail.comwrote:

 Hi,

 I'm new to cakephp, and I created an association between two tables Users
 and Notes. User has many notes and Note belongs to user

 When I used bake to generate code. The add action of Note, a drop down
 list of users should appear in the form. However, the generated drop down
 list shows the primary ID of users. I want to use dropdown list of
 usernames or any other field.

 Any help?

 Ahmed

 --
 Like Us on FaceBook https://www.facebook.com/CakePHP
 Find us on Twitter http://twitter.com/CakePHP

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




-- 
Like Us on FaceBook https://www.facebook.com/CakePHP
Find us on Twitter http://twitter.com/CakePHP

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




DropDown list fields for HasMany-BelongsTo association

2013-04-24 Thread Ahmed Abdelsalam
Hi,

I'm new to cakephp, and I created an association between two tables Users 
and Notes. User has many notes and Note belongs to user

When I used bake to generate code. The add action of Note, a drop down list 
of users should appear in the form. However, the generated drop down list 
shows the primary ID of users. I want to use dropdown list of usernames or 
any other field.

Any help?

Ahmed

-- 
Like Us on FaceBook https://www.facebook.com/CakePHP
Find us on Twitter http://twitter.com/CakePHP

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




Re: Inefficient SQL queries with hasMany/belongsTo relationship

2009-10-28 Thread robustsolution

the question why do you want to paginate comments while you are
paginating posts?
in general when you paginate the main model (Post), you just include
summary fields from the associated models example
-last commented by commenter name
-last comment title... not body... (text)
-last commented in (date)
-total number of comments (number)
-total number of visits (number)
etc...

so either these fields are redundant in the posts table just for
performance issue (many question marks here maybe)
or you do custom pagination queries to retrieve the last things for
each post (in the current pagination of course... the current page I
mean)
--~--~-~--~~~---~--~~
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: Inefficient SQL queries with hasMany/belongsTo relationship

2009-10-23 Thread AD7six



On 23 oct, 05:32, bonecandy boneca...@gmail.com wrote:
 Hi, this is my first post here - I'm new to CakePHP, but not to
 programming or PHP.
 Anyway, to get acquainted with Cake I've been making a blog (I know,
 crazy, huh?). So, I have my posts table and model, which has a hasMany
 relationship with comments, and my comments table and model, which has
 a belongsTo relationship with my post model.
 This works just fine - I'm using the paginate helper like so:

 $this-set('posts',$this-paginate('Post'));

 And I can access the comments just fine. However, the problem is the
 query is so inefficient!
 These are the queries Cake produces that I have issues with:

 SELECT `Post`.`id`, `Post`.`title`, `Post`.`url_title`, `Post`.`body`,
 `Post`.`date_created`, `Post`.`date_modified` FROM `posts` AS `Post`
 WHERE 1 = 1 ORDER BY `Post`.`id` desc LIMIT 20

 SELECT `Comments`.`id`, `Comments`.`user`, `Comments`.`body`,
 `Comments`.`post_id` FROM `comments` AS `Comments` WHERE
 `Comments`.`post_id` IN (22, 21, 20, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4,
 3, 2, 1)

 The 'IN' MySQL operator is  slow.

How slow. Feel free to propose an alternative that achieves the same
thing.

 More importantly, that extra query
 is unnecessary!

So don't ask for it :)

 Is it possible to get CakePHP to combine the two and
 produce something like this?

 SELECT `Post`.`id`, `Post`.`title`, `Post`.`url_title`, `Post`.`body`,
 `Post`.`date_created`, `Post`.`date_modified`,`Comments`.* FROM
 `posts` AS `Post` LEFT JOIN `comments` AS `Comments` ON
 `Comments`.`post_id` = `Post`.`id` ORDER BY `Post`.`id` desc LIMIT 20

 I've searched this group as well as Google and haven't really found
 much of anything about this.

Post hasOne Comment would generate that - but good luck paginating it.
As soon as any post has more than 1 comment your post index is going
to have duplicates or holes (depending on if/how you try to 'fix'
that). But why are you requesting comments at all?

AD
--~--~-~--~~~---~--~~
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: Inefficient SQL queries with hasMany/belongsTo relationship

2009-10-23 Thread Céryl

Probably because he doesn't know about recursion (yet)?
A find('all') command will do exaclty that, find all... So if you do a
find('all') of the posts, itll also get all the commens, tags, users,
whatever the post has relationships with... If in a certain action you
just need the posts, add $this-Product-recursive = 0; before the
call. It'll limit the search to only posts. (recursive is kinda like a
depth-level of search)



On 23 okt, 09:05, AD7six andydawso...@gmail.com wrote:
 On 23 oct, 05:32, bonecandy boneca...@gmail.com wrote:



  Hi, this is my first post here - I'm new to CakePHP, but not to
  programming or PHP.
  Anyway, to get acquainted with Cake I've been making a blog (I know,
  crazy, huh?). So, I have my posts table and model, which has a hasMany
  relationship with comments, and my comments table and model, which has
  a belongsTo relationship with my post model.
  This works just fine - I'm using the paginate helper like so:

  $this-set('posts',$this-paginate('Post'));

  And I can access the comments just fine. However, the problem is the
  query is so inefficient!
  These are the queries Cake produces that I have issues with:

  SELECT `Post`.`id`, `Post`.`title`, `Post`.`url_title`, `Post`.`body`,
  `Post`.`date_created`, `Post`.`date_modified` FROM `posts` AS `Post`
  WHERE 1 = 1 ORDER BY `Post`.`id` desc LIMIT 20

  SELECT `Comments`.`id`, `Comments`.`user`, `Comments`.`body`,
  `Comments`.`post_id` FROM `comments` AS `Comments` WHERE
  `Comments`.`post_id` IN (22, 21, 20, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4,
  3, 2, 1)

  The 'IN' MySQL operator is  slow.

 How slow. Feel free to propose an alternative that achieves the same
 thing.

  More importantly, that extra query
  is unnecessary!

 So don't ask for it :)

  Is it possible to get CakePHP to combine the two and
  produce something like this?

  SELECT `Post`.`id`, `Post`.`title`, `Post`.`url_title`, `Post`.`body`,
  `Post`.`date_created`, `Post`.`date_modified`,`Comments`.* FROM
  `posts` AS `Post` LEFT JOIN `comments` AS `Comments` ON
  `Comments`.`post_id` = `Post`.`id` ORDER BY `Post`.`id` desc LIMIT 20

  I've searched this group as well as Google and haven't really found
  much of anything about this.

 Post hasOne Comment would generate that - but good luck paginating it.
 As soon as any post has more than 1 comment your post index is going
 to have duplicates or holes (depending on if/how you try to 'fix'
 that). But why are you requesting comments at all?

 AD
--~--~-~--~~~---~--~~
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: Inefficient SQL queries with hasMany/belongsTo relationship

2009-10-23 Thread bonecandy

 How slow. Feel free to propose an alternative that achieves the same
 thing.

Okay, well, I researched IN again and it appears that IN is really
only slow in sub-selects where a join would be much faster. Sorry, I
posted without double-checking, I conflated sub-selects with any
select ;(

 So don't ask for it :)

That's the problem isn't it - figuring out the best way not to ask for
it :P


 Post hasOne Comment would generate that - but good luck paginating it.
 As soon as any post has more than 1 comment your post index is going
 to have duplicates or holes (depending on if/how you try to 'fix'
 that). But why are you requesting comments at all?

Well, I'd like to list the amount of comments each post has on the
main page. There might be another way to get this, but it still irks
me that Cake produces two queries when one query would suffice. I
thought using a join in this case would be the obvious choice for
Cake's ORM (does it have an official name? ActiveCake?).
I thought about overriding the paginate method in my Post model, but
the extra query only adds about 1-5ms of time and the records are
limited to 20 so IN wouldn't be terribly slow, so I'll probably ignore
this issue for now. In the future I'll probably just implement my own
pagination separate from Cake itself.

Probably because he doesn't know about recursion (yet)?
A find('all') command will do exaclty that, find all... So if you do a
find('all') of the posts, itll also get all the commens, tags, users,
whatever the post has relationships with... If in a certain action you
just need the posts, add $this-Product-recursive = 0; before the
call. It'll limit the search to only posts. (recursive is kinda like a
depth-level of search)

I'm not sure if reducing recursion would help me here. I actually
*want* those comments - or at least their count for each post.
--~--~-~--~~~---~--~~
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: Inefficient SQL queries with hasMany/belongsTo relationship

2009-10-23 Thread Andras Kende


You might want to look into : 
http://book.cakephp.org/view/816/counterCache-Cache-your-count

Andras


On Oct 23, 2009, at 7:30 PM, bonecandy wrote:


 How slow. Feel free to propose an alternative that achieves the same
 thing.

 Okay, well, I researched IN again and it appears that IN is really
 only slow in sub-selects where a join would be much faster. Sorry, I
 posted without double-checking, I conflated sub-selects with any
 select ;(

 So don't ask for it :)

 That's the problem isn't it - figuring out the best way not to ask for
 it :P


 Post hasOne Comment would generate that - but good luck paginating  
 it.
 As soon as any post has more than 1 comment your post index is going
 to have duplicates or holes (depending on if/how you try to 'fix'
 that). But why are you requesting comments at all?

 Well, I'd like to list the amount of comments each post has on the
 main page. There might be another way to get this, but it still irks
 me that Cake produces two queries when one query would suffice. I
 thought using a join in this case would be the obvious choice for
 Cake's ORM (does it have an official name? ActiveCake?).
 I thought about overriding the paginate method in my Post model, but
 the extra query only adds about 1-5ms of time and the records are
 limited to 20 so IN wouldn't be terribly slow, so I'll probably ignore
 this issue for now. In the future I'll probably just implement my own
 pagination separate from Cake itself.

 Probably because he doesn't know about recursion (yet)?
 A find('all') command will do exaclty that, find all... So if you  
 do a
 find('all') of the posts, itll also get all the commens, tags, users,
 whatever the post has relationships with... If in a certain action  
 you
 just need the posts, add $this-Product-recursive = 0; before the
 call. It'll limit the search to only posts. (recursive is kinda  
 like a
 depth-level of search)

 I'm not sure if reducing recursion would help me here. I actually
 *want* those comments - or at least their count for each post.
 


--~--~-~--~~~---~--~~
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: Inefficient SQL queries with hasMany/belongsTo relationship

2009-10-23 Thread Miles J

Im curious as how you think a join would be better? You are you going
to grab multiple comment rows for a single post, while paginating
posts? 2 queries is faster then sub-queries.

More queries is sometimes better than complex queries.
--~--~-~--~~~---~--~~
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: Inefficient SQL queries with hasMany/belongsTo relationship

2009-10-23 Thread bonecandy

On Oct 23, 7:43 pm, Miles J mileswjohn...@gmail.com wrote:
 Im curious as how you think a join would be better? You are you going
 to grab multiple comment rows for a single post, while paginating
 posts? 2 queries is faster then sub-queries.

 More queries is sometimes better than complex queries.

Well, you may certainly be right, I never professed to be an SQL pro.
Can you explain why two queries would be better in this case? I know
this is not the best measurement, but looking at the query times Cake
outputs in dev mode, they actually seem to be almost equal. Should I
just stop worrying and love ActiveCake?
On the other hand, two queries may be faster for MySQL, but the extra
query will still add *some* network latency.
--~--~-~--~~~---~--~~
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
-~--~~~~--~~--~--~---



Inefficient SQL queries with hasMany/belongsTo relationship

2009-10-22 Thread bonecandy

Hi, this is my first post here - I'm new to CakePHP, but not to
programming or PHP.
Anyway, to get acquainted with Cake I've been making a blog (I know,
crazy, huh?). So, I have my posts table and model, which has a hasMany
relationship with comments, and my comments table and model, which has
a belongsTo relationship with my post model.
This works just fine - I'm using the paginate helper like so:

$this-set('posts',$this-paginate('Post'));

And I can access the comments just fine. However, the problem is the
query is so inefficient!
These are the queries Cake produces that I have issues with:

SELECT `Post`.`id`, `Post`.`title`, `Post`.`url_title`, `Post`.`body`,
`Post`.`date_created`, `Post`.`date_modified` FROM `posts` AS `Post`
WHERE 1 = 1 ORDER BY `Post`.`id` desc LIMIT 20

SELECT `Comments`.`id`, `Comments`.`user`, `Comments`.`body`,
`Comments`.`post_id` FROM `comments` AS `Comments` WHERE
`Comments`.`post_id` IN (22, 21, 20, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4,
3, 2, 1)

The 'IN' MySQL operator is  slow. More importantly, that extra query
is unnecessary! Is it possible to get CakePHP to combine the two and
produce something like this?

SELECT `Post`.`id`, `Post`.`title`, `Post`.`url_title`, `Post`.`body`,
`Post`.`date_created`, `Post`.`date_modified`,`Comments`.* FROM
`posts` AS `Post` LEFT JOIN `comments` AS `Comments` ON
`Comments`.`post_id` = `Post`.`id` ORDER BY `Post`.`id` desc LIMIT 20

I've searched this group as well as Google and haven't really found
much of anything about this.

--~--~-~--~~~---~--~~
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: Problem with hasMany/belongsTo relationships - not returning related records.

2009-07-25 Thread Alastair


On Jul 24, 10:10 pm, mariusz.lewandowski lew...@gmail.com wrote:
 I'm also looking for some convinient way to avoid invoking bindModel
 method ..

I'll tell you what fixed my problem, it was giving the model file the
correct extension. My comment model file was named comment.ctp not
comment.php :-/

--~--~-~--~~~---~--~~
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: Problem with hasMany/belongsTo relationships - not returning related records.

2009-07-24 Thread mariusz.lewandowski

I'm also looking for some convinient way to avoid invoking bindModel
method ..

On Jul 23, 1:52 pm, Alastair alast...@zanginteractive.com wrote:
 Hi and many thanks for your help!

 This did work, however it doesn't make sense that I've had to do this
 in the first place! It seems like accessing the parent model of a
 child model is broken. I don't know if I'm doing something completely
 wrong but I can access my comments records from the user perfectly
 fine but am unable to access the User from a comment?

 Does anyone have any suggestions why this might be?

 Cheers,

 Alastair

 On Jul 23, 8:53 am, mariusz.lewandowski lew...@gmail.com wrote:

  I had the same issue.

  The resolutions goes like that: in beforeFilter i invoke:

          public function beforeFilter() {
                  $this-pageTitle = 'Portfolio';
                  $this-Portfolio-bindModel(array(
                                                  'belongsTo' = 
  array('Category'),
                                                  'hasMany' = 
  array('Image')));
          }

  And then you have an access to allrelatedmodels.

  Cheers.

  On 22 Lip, 19:11, Alastair alast...@zanginteractive.com wrote:

   Hoping someone can suggest something here!

   I have a number of models, which look as follows:

   Comment
   --

   class Comment extends AppModel
   {

           var $name = 'Comment';
           var $validate = array(
                   'body' = array('rule' = 'notEmpty')
           );

           var $belongsTo = array(
                   'User' = array(
                           'className' = 'User',
                           'foreignKey' = 'user_id',
                   ),
                   'Post' = array(
                           'className' = 'Post',
                           'foreignKey' = 'post_id',
                   ),
           );

   }

   Post
   ---

   class Post extends AppModel
   {

           var $name = 'Post';
           var $validate = array(
                   'title' = array('rule' = 'notEmpty'),
                   'body' = array('rule' = 'notEmpty')
           );

           var $hasMany = array('Comment');

   }

   User
   ---

   class User extends AppModel {

           var $actsAs = array('Acl' = array('requester'));
           var $hasOne = 'Member';
           var $name = 'User';

           var $belongsTo = array('Group');

           var $hasMany = array(
                   'Comment' = array(
                           'className' = 'Comment',
                           'foreignKey' = 'user_id'
                   )
           );

   }

   I'm calling the following find in my Posts controller:

   $comments = $this-Comment-find('all', array('recursive' = 2));

   I've declared var $uses = array('Post', 'Comment','User'); at the top
   of the posts controller.

   All I'm getting returned is an array of comments but not theirrelated
   users.

   Can anyone suggest why this might be?

   Many thanks!

   Alastair
--~--~-~--~~~---~--~~
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: Problem with hasMany/belongsTo relationships - not returning related records.

2009-07-23 Thread mariusz.lewandowski

I had the same issue.

The resolutions goes like that: in beforeFilter i invoke:

public function beforeFilter() {
$this-pageTitle = 'Portfolio';
$this-Portfolio-bindModel(array(
'belongsTo' = 
array('Category'),
'hasMany' = array('Image')));
}

And then you have an access to all related models.

Cheers.

On 22 Lip, 19:11, Alastair alast...@zanginteractive.com wrote:
 Hoping someone can suggest something here!

 I have a number of models, which look as follows:

 Comment
 --

 class Comment extends AppModel
 {

         var $name = 'Comment';
         var $validate = array(
                 'body' = array('rule' = 'notEmpty')
         );

         var $belongsTo = array(
                 'User' = array(
                         'className' = 'User',
                         'foreignKey' = 'user_id',
                 ),
                 'Post' = array(
                         'className' = 'Post',
                         'foreignKey' = 'post_id',
                 ),
         );

 }

 Post
 ---

 class Post extends AppModel
 {

         var $name = 'Post';
         var $validate = array(
                 'title' = array('rule' = 'notEmpty'),
                 'body' = array('rule' = 'notEmpty')
         );

         var $hasMany = array('Comment');

 }

 User
 ---

 class User extends AppModel {

         var $actsAs = array('Acl' = array('requester'));
         var $hasOne = 'Member';
         var $name = 'User';

         var $belongsTo = array('Group');

         var $hasMany = array(
                 'Comment' = array(
                         'className' = 'Comment',
                         'foreignKey' = 'user_id'
                 )
         );

 }

 I'm calling the following find in my Posts controller:

 $comments = $this-Comment-find('all', array('recursive' = 2));

 I've declared var $uses = array('Post', 'Comment','User'); at the top
 of the posts controller.

 All I'm getting returned is an array of comments but not their related
 users.

 Can anyone suggest why this might be?

 Many thanks!

 Alastair
--~--~-~--~~~---~--~~
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: Problem with hasMany/belongsTo relationships - not returning related records.

2009-07-23 Thread Alastair

Hi and many thanks for your help!

This did work, however it doesn't make sense that I've had to do this
in the first place! It seems like accessing the parent model of a
child model is broken. I don't know if I'm doing something completely
wrong but I can access my comments records from the user perfectly
fine but am unable to access the User from a comment?

Does anyone have any suggestions why this might be?

Cheers,

Alastair

On Jul 23, 8:53 am, mariusz.lewandowski lew...@gmail.com wrote:
 I had the same issue.

 The resolutions goes like that: in beforeFilter i invoke:

         public function beforeFilter() {
                 $this-pageTitle = 'Portfolio';
                 $this-Portfolio-bindModel(array(
                                                 'belongsTo' = 
 array('Category'),
                                                 'hasMany' = array('Image')));
         }

 And then you have an access to all related models.

 Cheers.

 On 22 Lip, 19:11, Alastair alast...@zanginteractive.com wrote:



  Hoping someone can suggest something here!

  I have a number of models, which look as follows:

  Comment
  --

  class Comment extends AppModel
  {

          var $name = 'Comment';
          var $validate = array(
                  'body' = array('rule' = 'notEmpty')
          );

          var $belongsTo = array(
                  'User' = array(
                          'className' = 'User',
                          'foreignKey' = 'user_id',
                  ),
                  'Post' = array(
                          'className' = 'Post',
                          'foreignKey' = 'post_id',
                  ),
          );

  }

  Post
  ---

  class Post extends AppModel
  {

          var $name = 'Post';
          var $validate = array(
                  'title' = array('rule' = 'notEmpty'),
                  'body' = array('rule' = 'notEmpty')
          );

          var $hasMany = array('Comment');

  }

  User
  ---

  class User extends AppModel {

          var $actsAs = array('Acl' = array('requester'));
          var $hasOne = 'Member';
          var $name = 'User';

          var $belongsTo = array('Group');

          var $hasMany = array(
                  'Comment' = array(
                          'className' = 'Comment',
                          'foreignKey' = 'user_id'
                  )
          );

  }

  I'm calling the following find in my Posts controller:

  $comments = $this-Comment-find('all', array('recursive' = 2));

  I've declared var $uses = array('Post', 'Comment','User'); at the top
  of the posts controller.

  All I'm getting returned is an array of comments but not their related
  users.

  Can anyone suggest why this might be?

  Many thanks!

  Alastair
--~--~-~--~~~---~--~~
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
-~--~~~~--~~--~--~---



Problem with hasMany/belongsTo relationships - not returning related records.

2009-07-22 Thread Alastair

Hoping someone can suggest something here!

I have a number of models, which look as follows:

Comment
--

class Comment extends AppModel
{

var $name = 'Comment';
var $validate = array(
'body' = array('rule' = 'notEmpty')
);

var $belongsTo = array(
'User' = array(
'className' = 'User',
'foreignKey' = 'user_id',
),
'Post' = array(
'className' = 'Post',
'foreignKey' = 'post_id',
),
);

}

Post
---

class Post extends AppModel
{

var $name = 'Post';
var $validate = array(
'title' = array('rule' = 'notEmpty'),
'body' = array('rule' = 'notEmpty')
);

var $hasMany = array('Comment');

}

User
---

class User extends AppModel {

var $actsAs = array('Acl' = array('requester'));
var $hasOne = 'Member';
var $name = 'User';

var $belongsTo = array('Group');

var $hasMany = array(
'Comment' = array(
'className' = 'Comment',
'foreignKey' = 'user_id'
)
);
}

I'm calling the following find in my Posts controller:

$comments = $this-Comment-find('all', array('recursive' = 2));

I've declared var $uses = array('Post', 'Comment','User'); at the top
of the posts controller.

All I'm getting returned is an array of comments but not their related
users.

Can anyone suggest why this might be?

Many thanks!

Alastair
--~--~-~--~~~---~--~~
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
-~--~~~~--~~--~--~---



ActAs in hasMany/belongsTo relationship doesn't work?

2009-05-12 Thread vla...@gmail.com

Hi!

I'm using behavior: 
http://bakery.cakephp.org/articles/view/actas-image-column-behavior

So. It's looks like:

Model A actAs ('Image'...)
Model A hasMany Model B

Model B belongsTo Model A

...

So, when I do some thing like Model A-find('all') - all fine.
Behavior work fine, and I get my images as I wanted.

But, when I try to use
$this-Model B-Model A-find('all..) behavior doesn't work
When I try
$this-Model-B-find(...) behavior doesn't work

Where I'm wrong?

I whant to make select from Model B and getting related Model A with
working behavior... Where is my mistake?

Cake 1.2.3.8166

Help
--~--~-~--~~~---~--~~
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: hasMany + belongsTo relationship problem

2009-01-13 Thread Ernesto

that worked. thank you very much

On 12 Gen, 19:42, Webweave webwe...@gmail.com wrote:
 You just need to set the recursive level to fetch the data that is not
 directly related. See:http://book.cakephp.org/view/439/recursive

 Set it before you do your find, or in the individual action.

 On Jan 8, 11:20 pm, Ernesto e.fanz...@gmail.com wrote:



  Hello and thx for the fast response.

  i forgot to paste the var $primaryKey in my model's code. sorry.

  everything is working fine in my app. i just can't fetch Location
  Types starting from persons. i'll take a look @ containable behaviour.

  thx again

  On 8 Gen, 21:43, Webweave webwe...@gmail.com wrote:

   Since you are using non-standard names for your ID columns, you need
   to specify $primaryKey in your models, so your Person model, you would
   need:

   $primaryKey = 'location_id';

   If you set debug to 2 or 3, you'll see the queries being executed. You
   may need to set recursive to get the non-related data too, see:

   On Jan 8, 8:09 am, Ernesto e.fanz...@gmail.com wrote:

Hello.

i have 3 models
- Person
- Location
- Location_Type

pointing respectively @ 3 tables:

Persons:
person_id
name
surname

Locations:
location_id
person_id
location_type_id
address
country

Location_Types:
location_type_id
description

the 3 models are linked as follow:
Person hasMany Location
Location belongsTo Location_Type

here's the models' code

class person extends AppModel {
        var $hasMany = array(
                Locations = array(
                        className = Location,
                        foreignKey = location_id,
                        dependent = true
                )
        );

}

class location extends AppModel {
        var $belongsTo = array(
                Location_Type = array(
                        className = LocationType,
                        foreignKey = location_type_id,
                        dependent = true
                )
        );

}

I can't find out why the Location_Type's data is not showing when i
load data from the Person model
--~--~-~--~~~---~--~~
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: hasMany + belongsTo relationship problem

2009-01-12 Thread Webweave

You just need to set the recursive level to fetch the data that is not
directly related. See: http://book.cakephp.org/view/439/recursive

Set it before you do your find, or in the individual action.

On Jan 8, 11:20 pm, Ernesto e.fanz...@gmail.com wrote:
 Hello and thx for the fast response.

 i forgot to paste the var $primaryKey in my model's code. sorry.

 everything is working fine in my app. i just can't fetch Location
 Types starting from persons. i'll take a look @ containable behaviour.

 thx again

 On 8 Gen, 21:43, Webweave webwe...@gmail.com wrote:

  Since you are using non-standard names for your ID columns, you need
  to specify $primaryKey in your models, so your Person model, you would
  need:

  $primaryKey = 'location_id';

  If you set debug to 2 or 3, you'll see the queries being executed. You
  may need to set recursive to get the non-related data too, see:

  On Jan 8, 8:09 am, Ernesto e.fanz...@gmail.com wrote:

   Hello.

   i have 3 models
   - Person
   - Location
   - Location_Type

   pointing respectively @ 3 tables:

   Persons:
   person_id
   name
   surname

   Locations:
   location_id
   person_id
   location_type_id
   address
   country

   Location_Types:
   location_type_id
   description

   the 3 models are linked as follow:
   Person hasMany Location
   Location belongsTo Location_Type

   here's the models' code

   class person extends AppModel {
           var $hasMany = array(
                   Locations = array(
                           className = Location,
                           foreignKey = location_id,
                           dependent = true
                   )
           );

   }

   class location extends AppModel {
           var $belongsTo = array(
                   Location_Type = array(
                           className = LocationType,
                           foreignKey = location_type_id,
                           dependent = true
                   )
           );

   }

   I can't find out why the Location_Type's data is not showing when i
   load data from the Person model


--~--~-~--~~~---~--~~
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: hasMany + belongsTo relationship problem

2009-01-08 Thread Ernesto

Hello and thx for the fast response.

i forgot to paste the var $primaryKey in my model's code. sorry.

everything is working fine in my app. i just can't fetch Location
Types starting from persons. i'll take a look @ containable behaviour.

thx again

On 8 Gen, 21:43, Webweave webwe...@gmail.com wrote:
 Since you are using non-standard names for your ID columns, you need
 to specify $primaryKey in your models, so your Person model, you would
 need:

 $primaryKey = 'location_id';

 If you set debug to 2 or 3, you'll see the queries being executed. You
 may need to set recursive to get the non-related data too, see:

 On Jan 8, 8:09 am, Ernesto e.fanz...@gmail.com wrote:



  Hello.

  i have 3 models
  - Person
  - Location
  - Location_Type

  pointing respectively @ 3 tables:

  Persons:
  person_id
  name
  surname

  Locations:
  location_id
  person_id
  location_type_id
  address
  country

  Location_Types:
  location_type_id
  description

  the 3 models are linked as follow:
  Person hasMany Location
  Location belongsTo Location_Type

  here's the models' code

  class person extends AppModel {
          var $hasMany = array(
                  Locations = array(
                          className = Location,
                          foreignKey = location_id,
                          dependent = true
                  )
          );

  }

  class location extends AppModel {
          var $belongsTo = array(
                  Location_Type = array(
                          className = LocationType,
                          foreignKey = location_type_id,
                          dependent = true
                  )
          );

  }

  I can't find out why the Location_Type's data is not showing when i
  load data from the Person model
--~--~-~--~~~---~--~~
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
-~--~~~~--~~--~--~---



hasMany/belongsTo w/ more than one foreign keys?

2008-07-12 Thread park

Hello,

Just came across a case where hasMany/belongsTo relations requires
more than one foreign keys from the same model.

Take a wish list for instance. There's two models, User and Wish. A
user can have multiple wishes for him self for sure. And he/she can
pick up others' wishes and claim a exclusive right to help fullful
them. Vice versa on Wish model's part.

In 'wishes' table in DB, there's two foreign keys: 'user_id'
indicating the owner of a wish, and 'claim_by' indicating the kind-
hearted claimer.

Looked into some documents and make the following code, which doesn't
work.

Looking for help here :)

BTW, do you think HABTM is a better solution in such a case like this?

?php
class user extends AppModel{
var $name = 'User';

var $hasMany = array(
'Wish' = array(
'className' = 'Wish',
'foreignKey' = 'user_id'),

'ClaimedItem' = array(
'className' = 'Wish',
'foreignKey' = 'claim_by'
),
);

}
?

?php
class wish extends AppModel{
var $name = 'Wish';

var $belongsTo = array(
'User' = array(
'className' = 'User',
'foreignKey' = 'user_id'),

'Claimer' = array(
'className' = 'User',
'foreignKey' = 'claim_by'
)
);

}
?

--~--~-~--~~~---~--~~
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 [EMAIL PROTECTED]
For more options, visit this group at 
http://groups.google.com/group/cake-php?hl=en
-~--~~~~--~~--~--~---



SOLVED Re: cake is ignoring my hasMany/belongsTo (noob)

2008-02-07 Thread sbeam

sorry folks I had model/project.php named as model/projects.php - I
finally realized Cake was ignoring the whole thing, without
complaining. So moral of the story - watch your cases and inflections!
just like ROR, figuring out what should be plural/singular or
camelCase/under_score_separated is a PITA (esp. for noobs)

--~--~-~--~~~---~--~~
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
-~--~~~~--~~--~--~---



cake is ignoring my hasMany/belongsTo (noob)

2008-02-07 Thread sbeam

I am starting out with Cake after messing with RoR for a while. I
jumped right in with a project where 'ArtWorks' are organized into
'Projects'. I wrote it all thusly:
===
class Project extends AppModel
{
var $hasMany = array('PubWorks' = array('className' = 'ArtWork',
   'foreignKey'= 'project_id',
   'dependent' = true,
   'exclusive' = false));
}
-
class ArtWork extends AppModel
{
var $belongsTo = array('Project' =
array('className'  = 'Project',
'foreignKey' = 'project_id'
)
);
}

class ProjectsController extends AppController
{

function show($id)
{
$w = $this-Project-read();
print preDEBUG: at line  . __LINE__ . ' of ' . __FILE__ .
\n;
print_r($w);
print '/pre';
}
}
=

I have set up the DB correctly with FKs using mySQL InnoDB. And
entered some sample data. But when I call http://localhost/projects/show/2

I get the debug dump of:

DEBUG: at line 8 of /xxx/cake_1.2.0.6311-beta/app/controllers/
projects_controller.php
Array
(
[Project] = Array
(
[id] = 2
[name] = War Room
[begin_date] = -00-00
)

)
=

no sign of the ArtWorks belonging to the Project. The SQL dumps show
the artworks table was never queried. I am out of ideas, according to
the manual this should work right? What am I missing?

thanks
Sam


--~--~-~--~~~---~--~~
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
-~--~~~~--~~--~--~---



Using Cake model relations (hasMany, belongsTo, etc)

2007-09-24 Thread jwerd

I'm using 1.2.x (latest SVN from trunk) fyi.

Anyways I've set up a notes system to keep track of my notes
internally, which is scaling to be quite efficient for what I need /
what.  Now here is my dilema.  I have three tables:


notes
id
title
body
created
user_id


users
id
username
password


followups
id
comment
user_id
note_id
created

I believe I'm following the Cake style table layout and structure
because most of my relations work.  The followups table is supposed to
like comments on the note.

Anyways when I'm viewing a note that has follow ups it appears below
the note's properties and says Related Followups and it's a list of
all the connected followups to that note.  Now the thing is here is
what it looks like (from scaffolding)

|Comment| --- | User | Note | Action
|
|This is doable, don't worry  | 1  | 1  | View,
Edit, Delete |

The problem is, I can't seem to change that 1 to the actual username
and I'm not sure how without writing a custom sql query to handle the
entire fetching of the followups to notes relationship.

Can someone please help me out?  Here's my cake relationship layout

model user
User hasMany Note
User hasMany Followup

model followup
Followup belongsTo Note
Followup belongsTo User

model note
Note belongsTo User
Note hasMany Followup

I'm not asking for someone to completely write my script just to lend
a helping hand as to if it's doable with the cake relations or do I
have to custom query this certain thign I want.

thanks for your time appreciate any response i get.


--~--~-~--~~~---~--~~
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
-~--~~~~--~~--~--~---



Re: Using Cake model relations (hasMany, belongsTo, etc)

2007-09-24 Thread Marco

If I undestood wll your need, it should be enough to define 'username'
as displayField for the user model:

model user
var $displayField = 'username';
User hasMany Note
User hasMany Followup

On 24 Set, 16:44, jwerd [EMAIL PROTECTED] wrote:
 I'm using 1.2.x (latest SVN from trunk) fyi.

 Anyways I've set up a notes system to keep track of my notes
 internally, which is scaling to be quite efficient for what I need /
 what.  Now here is my dilema.  I have three tables:

 notes
 id
 title
 body
 created
 user_id

 users
 id
 username
 password

 followups
 id
 comment
 user_id
 note_id
 created

 I believe I'm following the Cake style table layout and structure
 because most of my relations work.  The followups table is supposed to
 like comments on the note.

 Anyways when I'm viewing a note that has follow ups it appears below
 the note's properties and says Related Followups and it's a list of
 all the connected followups to that note.  Now the thing is here is
 what it looks like (from scaffolding)

 |Comment| --- | User | Note | Action
 |
 |This is doable, don't worry  | 1  | 1  | View,
 Edit, Delete |

 The problem is, I can't seem to change that 1 to the actual username
 and I'm not sure how without writing a custom sql query to handle the
 entire fetching of the followups to notes relationship.

 Can someone please help me out?  Here's my cake relationship layout

 model user
 User hasMany Note
 User hasMany Followup

 model followup
 Followup belongsTo Note
 Followup belongsTo User

 model note
 Note belongsTo User
 Note hasMany Followup

 I'm not asking for someone to completely write my script just to lend
 a helping hand as to if it's doable with the cake relations or do I
 have to custom query this certain thign I want.

 thanks for your time appreciate any response i get.


--~--~-~--~~~---~--~~
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
-~--~~~~--~~--~--~---



Re: Using Cake model relations (hasMany, belongsTo, etc)

2007-09-24 Thread jwerd

Notice (8): Undefined index:  username [CORE/notes/views/notes/
view.ctp, line 80]

I think the complex part is that I'm trying to do this through my
notes view, because that's where it will list the connecting followups
and then I need it to refrence the user_id to the username, etc.  :(

Array ( [id] = 13 [comment] = Should we have limits on the amount of
trades per month. People could begin to conduct business this way and
it might pose a problem. [note_id] = 21 [user_id] = 1 [created] =
2007-09-23 16:42:22 )




On Sep 24, 9:18 am, Marco [EMAIL PROTECTED] wrote:
 If I undestood wll your need, it should be enough to define 'username'
 as displayField for the user model:

 model user
 var $displayField = 'username';
 User hasMany Note
 User hasMany Followup

 On 24 Set, 16:44, jwerd [EMAIL PROTECTED] wrote:

  I'm using 1.2.x (latest SVN from trunk) fyi.

  Anyways I've set up a notes system to keep track of my notes
  internally, which is scaling to be quite efficient for what I need /
  what.  Now here is my dilema.  I have three tables:

  notes
  id
  title
  body
  created
  user_id

  users
  id
  username
  password

  followups
  id
  comment
  user_id
  note_id
  created

  I believe I'm following the Cake style table layout and structure
  because most of my relations work.  The followups table is supposed to
  like comments on the note.

  Anyways when I'm viewing a note that has follow ups it appears below
  the note's properties and says Related Followups and it's a list of
  all the connected followups to that note.  Now the thing is here is
  what it looks like (from scaffolding)

  |Comment| --- | User | Note | Action
  |
  |This is doable, don't worry  | 1  | 1  | View,
  Edit, Delete |

  The problem is, I can't seem to change that 1 to the actual username
  and I'm not sure how without writing a custom sql query to handle the
  entire fetching of the followups to notes relationship.

  Can someone please help me out?  Here's my cake relationship layout

  model user
  User hasMany Note
  User hasMany Followup

  model followup
  Followup belongsTo Note
  Followup belongsTo User

  model note
  Note belongsTo User
  Note hasMany Followup

  I'm not asking for someone to completely write my script just to lend
  a helping hand as to if it's doable with the cake relations or do I
  have to custom query this certain thign I want.

  thanks for your time appreciate any response i get.


--~--~-~--~~~---~--~~
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
-~--~~~~--~~--~--~---



Recursive finds with hasMany/belongsTo

2007-07-23 Thread Nathan

I apologize if I'm just not finding the right posts in the archives,
but I'm having a problem I'm guessing some of you have had an might
know the answer to.  I've got two models setup as follows:
models/incident.php:
var $hasMany = array(
'Resident' = array('className' = 'Resident',
   'foreignKey' = 'incident_id'));

models/resident.php:
var $belongsTo = array(
   'Incident' = array('className' = 'Incident',
  'foreignKey' = 'incident_id'));

I'm trying to search for any incidents with residents who have a given
campus id.  So, in my incident controller, I'm trying to do this:

$this-Incident-findAll(array(Resident.campusid = 123456, '',
'', '', 1, 2));

When I try this though, rather than recognizing Resident as an
associated model, it just plugs it in as a table name and I receive a
SQL error.  When I remove the search condition (and just do a
recursive search), it finds the associated resident just fine.  Any
guesses on what I might be doing wrong to not have the ability to
search by this associated model?

Thanks a bunch and hopefully this isn't something that gets asked all
the time!

Nathan


--~--~-~--~~~---~--~~
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
-~--~~~~--~~--~--~---



hasMany / belongsTo relationship help

2007-03-08 Thread rtconner

Its a simple relationship, One article has many comments. I don't even
have users, just simply type in your name. I cannot figuere out how to
access the Article Data from within the ArticleComment

What do I need to do in the add() method to get it to load a list of
comments using the article_id? How would I get this add() method to
work, in general?

And if you were wondering my, end goal is to learn the CakePHP system.
Getting this to work is secondary.

-- ArticleComment model -
var $belongsTo = array('Article' =
   array('className'  = 'Article',
 'conditions' = '',
 'order'  = '',
 'foreignKey' = 'article_id'
   )
 );



 ArticleCommentController --
class ArticleCommentController extends AppController {
var $useTable = 'article_comment';
var $name = 'ArticleComment';

function add($article_id) {
$this-ArticleComment-article_id = $article_id;
$this-set('comment', $this-ArticleComment-read());

if (!empty($this-data))
{

$this-data['ArticleComment']['date'] =
$this-data['ArticleComment']['date_year'] . - .
$this-data['ArticleComment']['date_month'] . - .
$this-data['ArticleComment']['date_day'];

if ($this-Article-save($this-data))
{
$this-flash('Your comment has been saved.', '/
article');
}
}
}
}



--~--~-~--~~~---~--~~
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
-~--~~~~--~~--~--~---



Re: hasMany / belongsTo relationship help

2007-03-08 Thread rtconner

Here is the answer,
in add() I put -

$this-ArticleComment-Article-id = $article_id;
$this-set('comment', $this-ArticleComment-Article-read());

Thanks for the help folks ;)



--~--~-~--~~~---~--~~
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
-~--~~~~--~~--~--~---



hasMany/belongsTo

2007-02-21 Thread Kathrin

Hello,
ich have Problems to save data in a hasMany/belonsto
Users_ProfilesTable.
Sie Array is OK.
My source:

View User:
?php // echo $html-hidden('User/user_id', array('value' =
$post['User']['id']));?
post to  User/Controller save the data and post user_id to Profile/
controller
View/Profile
echo $form-hidden('User/user_id', array('value'= $userid));
Controller/Profile
function addprofile($userid=0) {
$this-set('userid',$userid);
if (!empty ($this-data)) {  #Formular wurde
abgeschickt-eingegebene Datenspeichern
$this-cleanUpFields();
$this-Profile-create();

$this-data['Profile']['user_id']=array($this-data['User']
['user_id']);
$this-Profile-save($this-data);
$this-data['User']['profile_id']=array($this-Profile-
getLastInsertId());
//error_log(print_r($this-data,true));
$this-Session-setFlash('The Profile-Data has been 
saved');
exit();
}
Have somebody an idea?
Sincerely Kathrin


--~--~-~--~~~---~--~~
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
-~--~~~~--~~--~--~---



Re: hasMany/belongsTo

2007-02-21 Thread Seb

Uuummm, I must say I don't really understand what your problem
precisely is, however I can spot a few mistakes in the code you
provided;

* using the HtmlHelper the tagName param should be User/id, not User/
user_id (that's if you're using the cake naming conventions)
* also if your relations are defined properly, you shouldn't have to
$this-data['User']['profile_id']=array($this-Profile-
getLastInsertId());

if I understand your app properly (Please, provide more details!) you
should have something like this for a one to one relationship;

User Model:
$hasOne = array('Profile');

Profile Model:
$belongsTo = array('User');

However, I see you have a Users_Profiles, meaning your having a many
to many relationship...??!

If that's the case, make sure your table is named Profiles_Users
(alphabetical) and you should not have a profile_id in the user table
nor in the user model.

Then try that; (assuming you have used the proper naming conv...!)

User Model:
var $hasAndBelongsToMany = array('Profile');

and the Profile Model should have the reverse;
var $hasAnd BelongsToMany = array('User');


So anyway, again, I'm really not sure where you're heading... but post
some more code (models, views and tbl structure) and we'll see what we
can do!

Hope it helps!

Seb./

Kathrin wrote:
 Hello,
 ich have Problems to save data in a hasMany/belonsto
 Users_ProfilesTable.
 Sie Array is OK.
 My source:

 View User:
 ?php // echo $html-hidden('User/user_id', array('value' =
 $post['User']['id']));?
 post to  User/Controller save the data and post user_id to Profile/
 controller
 View/Profile
 echo $form-hidden('User/user_id', array('value'= $userid));
 Controller/Profile
 function addprofile($userid=0) {
   $this-set('userid',$userid);
 if (!empty ($this-data)) {  #Formular wurde
 abgeschickt-eingegebene Datenspeichern
 $this-cleanUpFields();
 $this-Profile-create();
   
 $this-data['Profile']['user_id']=array($this-data['User']
 ['user_id']);
 $this-Profile-save($this-data);
   $this-data['User']['profile_id']=array($this-Profile-
 getLastInsertId());
   //error_log(print_r($this-data,true));
   $this-Session-setFlash('The Profile-Data has been 
 saved');
 exit();
 }
 Have somebody an idea?
 Sincerely Kathrin


--~--~-~--~~~---~--~~
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
-~--~~~~--~~--~--~---



Re: Help with a $hasMany, $belongsTo association...

2007-02-13 Thread alexxwiz

I have same problem.
Two tables:

CREATE TABLE `maincats` (
  `id` int(10) unsigned NOT NULL auto_increment,
  `title` varchar(255) default NULL,
  `visible` tinyint(4) NOT NULL default '1',
  `created` datetime NOT NULL,
  PRIMARY KEY  (`id`)
) ENGINE=MyISAM;

CREATE TABLE `categories` (
  `id` int(10) unsigned NOT NULL auto_increment,
  `title` varchar(255) default NULL,
  `maincat_id` int(11) default NULL,
  `visible` tinyint(4) NOT NULL default '1',
  `created` datetime NOT NULL,
  PRIMARY KEY  (`id`)
) ENGINE=MyISAM;

Two models:

class Maincat extends AppModel {
var $name = 'Maincat';
var $hasMany =
array('Category'=array('className'='Category','foreignKey' =
'maincat_id'));
}

class Category extends AppModel {
var $name = 'Category';
}


print_r($this-Maincat-findAll());

returns only maincats content and none sub-categories.

Array
(
[0] = Array
(
[Maincat] = Array
(
[id] = 1
[title] = Some first
[visible] = 1
[created] = 2007-02-13 14:39:28
)

)

[1] = Array
(
[Maincat] = Array
(
[id] = 2
[title] = Some second
[visible] = 1
[created] = 2007-02-13 00:00:00
)

)

)


Where is my mistake?


--~--~-~--~~~---~--~~
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
-~--~~~~--~~--~--~---



Re: Help with a $hasMany, $belongsTo association...

2007-02-13 Thread Seb

@alexxwiz.. and make sure you read Eric's post about $recursive!

;)

S.

On Feb 13, 11:27 pm, alexxwiz [EMAIL PROTECTED] wrote:
 I have same problem.
 Two tables:

 CREATE TABLE `maincats` (
   `id` int(10) unsigned NOT NULL auto_increment,
   `title` varchar(255) default NULL,
   `visible` tinyint(4) NOT NULL default '1',
   `created` datetime NOT NULL,
   PRIMARY KEY  (`id`)
 ) ENGINE=MyISAM;

 CREATE TABLE `categories` (
   `id` int(10) unsigned NOT NULL auto_increment,
   `title` varchar(255) default NULL,
   `maincat_id` int(11) default NULL,
   `visible` tinyint(4) NOT NULL default '1',
   `created` datetime NOT NULL,
   PRIMARY KEY  (`id`)
 ) ENGINE=MyISAM;

 Two models:

 class Maincat extends AppModel {
 var $name = 'Maincat';
 var $hasMany =
 array('Category'=array('className'='Category','foreignKey' =
 'maincat_id'));

 }

 class Category extends AppModel {
 var $name = 'Category';

 }

 print_r($this-Maincat-findAll());

 returns only maincats content and none sub-categories.

 Array
 (
 [0] = Array
 (
 [Maincat] = Array
 (
 [id] = 1
 [title] = Some first
 [visible] = 1
 [created] = 2007-02-13 14:39:28
 )

 )

 [1] = Array
 (
 [Maincat] = Array
 (
 [id] = 2
 [title] = Some second
 [visible] = 1
 [created] = 2007-02-13 00:00:00
 )

 )

 )

 Where is my mistake?


--~--~-~--~~~---~--~~
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
-~--~~~~--~~--~--~---



Re: Help with a $hasMany, $belongsTo association...

2007-02-13 Thread Seb

@alexxwiz : try adding this to your Category model;
var $belongsTo = array ('Maincat');

@shoesole : note how you don't have to use the className value if you
stick to the naming convention, hence your
var $belongsTo  = array('Blog' = array('className' = 'Blog') );
can become
var $belongsTo  = array('Blog');

Hope that helps!

Cheers,

Seb.

On Feb 13, 11:27 pm, alexxwiz [EMAIL PROTECTED] wrote:
 I have same problem.
 Two tables:

 CREATE TABLE `maincats` (
   `id` int(10) unsigned NOT NULL auto_increment,
   `title` varchar(255) default NULL,
   `visible` tinyint(4) NOT NULL default '1',
   `created` datetime NOT NULL,
   PRIMARY KEY  (`id`)
 ) ENGINE=MyISAM;

 CREATE TABLE `categories` (
   `id` int(10) unsigned NOT NULL auto_increment,
   `title` varchar(255) default NULL,
   `maincat_id` int(11) default NULL,
   `visible` tinyint(4) NOT NULL default '1',
   `created` datetime NOT NULL,
   PRIMARY KEY  (`id`)
 ) ENGINE=MyISAM;

 Two models:

 class Maincat extends AppModel {
 var $name = 'Maincat';
 var $hasMany =
 array('Category'=array('className'='Category','foreignKey' =
 'maincat_id'));

 }

 class Category extends AppModel {
 var $name = 'Category';

 }

 print_r($this-Maincat-findAll());

 returns only maincats content and none sub-categories.

 Array
 (
 [0] = Array
 (
 [Maincat] = Array
 (
 [id] = 1
 [title] = Some first
 [visible] = 1
 [created] = 2007-02-13 14:39:28
 )

 )

 [1] = Array
 (
 [Maincat] = Array
 (
 [id] = 2
 [title] = Some second
 [visible] = 1
 [created] = 2007-02-13 00:00:00
 )

 )

 )

 Where is my mistake?


--~--~-~--~~~---~--~~
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
-~--~~~~--~~--~--~---



Re: Help with a $hasMany, $belongsTo association...

2007-02-13 Thread alexxwiz

Added to Category model:

var $belongsTo = array (
'Maincat' = array (
'className' = 'Maincat',
'foreignKey' = 'maincat_id'
)
);


Trying to set recursive to 1 and 2, but nope.

$this-Maincat-recursive = 1;
print_r($this-Maincat-findAll());

Result is same as before.

Any suggestions?

On 13 фев, 16:42, Seb [EMAIL PROTECTED] wrote:
 @alexxwiz : try adding this to your Category model;
 var $belongsTo = array ('Maincat');

 @shoesole : note how you don't have to use the className value if you
 stick to the naming convention, hence your
 var $belongsTo  = array('Blog' = array('className' = 'Blog') );
 can become
 var $belongsTo  = array('Blog');

 Hope that helps!

 Cheers,

 Seb.

 On Feb 13, 11:27 pm, alexxwiz [EMAIL PROTECTED] wrote:

  I have same problem.
  Two tables:

  CREATE TABLE `maincats` (
`id` int(10) unsigned NOT NULL auto_increment,
`title` varchar(255) default NULL,
`visible` tinyint(4) NOT NULL default '1',
`created` datetime NOT NULL,
PRIMARY KEY  (`id`)
  ) ENGINE=MyISAM;

  CREATE TABLE `categories` (
`id` int(10) unsigned NOT NULL auto_increment,
`title` varchar(255) default NULL,
`maincat_id` int(11) default NULL,
`visible` tinyint(4) NOT NULL default '1',
`created` datetime NOT NULL,
PRIMARY KEY  (`id`)
  ) ENGINE=MyISAM;

  Two models:

  class Maincat extends AppModel {
  var $name = 'Maincat';
  var $hasMany =
  array('Category'=array('className'='Category','foreignKey' =
  'maincat_id'));

  }

  class Category extends AppModel {
  var $name = 'Category';

  }

  print_r($this-Maincat-findAll());

  returns only maincats content and none sub-categories.

  Array
  (
  [0] = Array
  (
  [Maincat] = Array
  (
  [id] = 1
  [title] = Some first
  [visible] = 1
  [created] = 2007-02-13 14:39:28
  )

  )

  [1] = Array
  (
  [Maincat] = Array
  (
  [id] = 2
  [title] = Some second
  [visible] = 1
  [created] = 2007-02-13 00:00:00
  )

  )

  )

  Where is my mistake?


--~--~-~--~~~---~--~~
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
-~--~~~~--~~--~--~---



Re: Help with a $hasMany, $belongsTo association...

2007-02-13 Thread alexxwiz

I'm glad for you, but my problem is still here :(
Can someone point me where is my mistake?

On 13 фев, 18:00, shoesole [EMAIL PROTECTED] wrote:
 Wow. I knew it had to be something easy that I was completely
 overlooking. Thank you so much Eric. I read the manual chapter on
 models multiple times, but I guess that part just didn't sink in
 (maybe next time I should read more carefully). Anyway, Thanks. This
 is my first shot at Cake and I love it so far, but that really had me
 confounded.


--~--~-~--~~~---~--~~
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
-~--~~~~--~~--~--~---



Re: Help with a $hasMany, $belongsTo association...

2007-02-13 Thread alexxwiz

There is something strange here. I found where problem is.

In file cake/libs/model/datasources/dbo_source.php on line 588:

if (isset($db)  $db != null) {

This condition is _always_ false on my system. When I changed it to

if (isset($db) || $db != null) {

all begin to work fine.

Seems like a error in my php version. I use php 5.2.0.0. Will try to
download more recent and test with it.


On 13 фев, 23:09, alexxwiz [EMAIL PROTECTED] wrote:
 I'm glad for you, but my problem is still here :(
 Can someone point me where is my mistake?

 On 13 фев, 18:00, shoesole [EMAIL PROTECTED] wrote:

  Wow. I knew it had to be something easy that I was completely
  overlooking. Thank you so much Eric. I read the manual chapter on
  models multiple times, but I guess that part just didn't sink in
  (maybe next time I should read more carefully). Anyway, Thanks. This
  is my first shot at Cake and I love it so far, but that really had me
  confounded.
 
   I have same problem.
   Two tables:
  
   CREATE TABLE `maincats` (
 `id` int(10) unsigned NOT NULL auto_increment,
 `title` varchar(255) default NULL,
 `visible` tinyint(4) NOT NULL default '1',
 `created` datetime NOT NULL,
 PRIMARY KEY  (`id`)
   ) ENGINE=MyISAM;
  
   CREATE TABLE `categories` (
 `id` int(10) unsigned NOT NULL auto_increment,
 `title` varchar(255) default NULL,
 `maincat_id` int(11) default NULL,
 `visible` tinyint(4) NOT NULL default '1',
 `created` datetime NOT NULL,
 PRIMARY KEY  (`id`)
   ) ENGINE=MyISAM;
  
   Two models:
  
   class Maincat extends AppModel {
   var $name = 'Maincat';
   var $hasMany =
   array('Category'=array('className'='Category','foreignKey' =
   'maincat_id'));
  
   }
  
   class Category extends AppModel {
   var $name = 'Category';
  
   }
  
   print_r($this-Maincat-findAll());
  
   returns only maincats content and none sub-categories.
  
   Array
   (
   [0] = Array
   (
   [Maincat] = Array
   (
   [id] = 1
   [title] = Some first
   [visible] = 1
   [created] = 2007-02-13 14:39:28
   )
  
   )
  
   [1] = Array
   (
   [Maincat] = Array
   (
   [id] = 2
   [title] = Some second
   [visible] = 1
   [created] = 2007-02-13 00:00:00
   )
  
   )
  
   )
  
   Where is my mistake?


--~--~-~--~~~---~--~~
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
-~--~~~~--~~--~--~---



Help with a $hasMany, $belongsTo association...

2007-02-12 Thread shoesole

Okay, I think this should work, but it doesn't. I've read through the
documentation and it all appears that I am doing the correct thing,
but it just isn't working for me. I'm really hoping that someone can
point out the obvious error that I'm completely missing here. :)

I'm trying to pull back a list of all my blogs along with all of the
associated comments for each blog. This is what I currently have:

table definitions: (I left out the data, but it is in there, trust
me...)
---

CREATE TABLE `blogs` (
  `id` int(11) NOT NULL auto_increment,
  `title` varchar(50) default NULL,
  `text` text,
  `post_date` datetime default NULL,
  `active` int(1) default NULL,
  `sort` int(11) default NULL,
  PRIMARY KEY  (`id`)
) ENGINE=MyISAM  DEFAULT CHARSET=latin1 AUTO_INCREMENT=19 ;

--
-- Table structure for table `comments`
--

CREATE TABLE `comments` (
  `id` int(11) NOT NULL auto_increment,
  `title` varchar(75) NOT NULL default '',
  `text` text NOT NULL,
  `date` date NOT NULL default '-00-00',
  `author` varchar(100) NOT NULL default '',
  `blog_id` int(11) NOT NULL default '0',
  CONSTRAINT fk_comments_blog foreign key (blog_id) references
blogs(id),
  PRIMARY KEY  (`id`)
) ENGINE=MyISAM  DEFAULT CHARSET=latin1 AUTO_INCREMENT=1 ;

---

comment.php
---

class Comment extends AppModel {

var $name = 'Comment';

//The Associations below have been created with all possible keys,
those that are not needed can be removed
var $belongsTo = array(
'Blog' =
array('className' = 'Blog')

);

}

---

blog.php
---

class Blog extends AppModel {

var $name = 'Blog';
var $hasMany = array('Comment' =
 array('className'='Comment')
);

var $validate = array(
'title' = VALID_NOT_EMPTY,
'text' = VALID_NOT_EMPTY,
'sort' = VALID_NUMBER,
);
}

---

From blogs_controller.php
---

function cp_index() {
$this-Blog-recursive = 0;

$this-set('blogs', $this-Blog-findAll());
$this-set('page_header', Shoe Sole - List Blogs);
$this-layout = 'list';
}

---

Now I would expect the $this-Blog-findAll() call to pull back an
array of blogs that has an array of comments within each respective
blog. However, this isn't the case. Instead it only pulls back blogs.

And don't worry, I do actually have comments that are related to these
blogs, In fact, the $belongTo portion of the comments section works
perfectly and associates one blog to each comment exactly as I would
expect.

So any help/guideance would be GREATLY appreciated.


--~--~-~--~~~---~--~~
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
-~--~~~~--~~--~--~---



Re: Help with a $hasMany, $belongsTo association...

2007-02-12 Thread Eric C Blount
Try this:
$this-Blog-recursive = 1;

From http://manual.cakephp.org/chapter/models:
  $recursive = 0 Cake fetches Group data $recursive = 1 Cake fetches a Group
and its associated Users $recursive = 2 Cake fetches a Group, its associated
Users, and the Users' associated Articles

HTH,
Eric


On 2/12/07, shoesole [EMAIL PROTECTED] wrote:


 Okay, I think this should work, but it doesn't. I've read through the
 documentation and it all appears that I am doing the correct thing,
 but it just isn't working for me. I'm really hoping that someone can
 point out the obvious error that I'm completely missing here. :)

 I'm trying to pull back a list of all my blogs along with all of the
 associated comments for each blog. This is what I currently have:

 table definitions: (I left out the data, but it is in there, trust
 me...)
 ---

 CREATE TABLE `blogs` (
 `id` int(11) NOT NULL auto_increment,
 `title` varchar(50) default NULL,
 `text` text,
 `post_date` datetime default NULL,
 `active` int(1) default NULL,
 `sort` int(11) default NULL,
 PRIMARY KEY  (`id`)
 ) ENGINE=MyISAM  DEFAULT CHARSET=latin1 AUTO_INCREMENT=19 ;

 --
 -- Table structure for table `comments`
 --

 CREATE TABLE `comments` (
 `id` int(11) NOT NULL auto_increment,
 `title` varchar(75) NOT NULL default '',
 `text` text NOT NULL,
 `date` date NOT NULL default '-00-00',
 `author` varchar(100) NOT NULL default '',
 `blog_id` int(11) NOT NULL default '0',
 CONSTRAINT fk_comments_blog foreign key (blog_id) references
 blogs(id),
 PRIMARY KEY  (`id`)
 ) ENGINE=MyISAM  DEFAULT CHARSET=latin1 AUTO_INCREMENT=1 ;

 ---

 comment.php
 ---

 class Comment extends AppModel {

var $name = 'Comment';

//The Associations below have been created with all possible keys,
 those that are not needed can be removed
var $belongsTo = array(
'Blog' =
array('className' = 'Blog')

);

 }

 ---

 blog.php
 ---

 class Blog extends AppModel {

var $name = 'Blog';
var $hasMany = array('Comment' =
 array('className'='Comment')
);

var $validate = array(
'title' = VALID_NOT_EMPTY,
'text' = VALID_NOT_EMPTY,
'sort' = VALID_NUMBER,
);
 }

 ---

 From blogs_controller.php
 ---

function cp_index() {
$this-Blog-recursive = 0;

$this-set('blogs', $this-Blog-findAll());
$this-set('page_header', Shoe Sole - List Blogs);
$this-layout = 'list';
}

 ---

 Now I would expect the $this-Blog-findAll() call to pull back an
 array of blogs that has an array of comments within each respective
 blog. However, this isn't the case. Instead it only pulls back blogs.

 And don't worry, I do actually have comments that are related to these
 blogs, In fact, the $belongTo portion of the comments section works
 perfectly and associates one blog to each comment exactly as I would
 expect.

 So any help/guideance would be GREATLY appreciated.


 


--~--~-~--~~~---~--~~
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
-~--~~~~--~~--~--~---



Re: Multiple hasMany / belongsTo

2007-01-20 Thread Barton

Interesting, but what I don't get are the classNames From' and 'To'.
What do you do with it? Did you create for 'From' and 'To' a model?


--~--~-~--~~~---~--~~
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
-~--~~~~--~~--~--~---



Re: Multiple hasMany / belongsTo

2007-01-20 Thread squidliberty

Oh, those are specific to my application. The transaction table in my
database has from and to fields to help keep track of which user is
the receiver and which user is the sender.


Barton wrote:
 Interesting, but what I don't get are the classNames From' and 'To'.
 What do you do with it? Did you create for 'From' and 'To' a model?


--~--~-~--~~~---~--~~
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
-~--~~~~--~~--~--~---



Re: Multiple hasMany / belongsTo

2007-01-16 Thread clemos


hi

your hasMany, belongsTo, and all associations definitions will work
better if they are in your Model classes rather than in your
Controller classes !

++
clemos

On 1/15/07, squidliberty [EMAIL PROTECTED] wrote:


Hi, I am still pretty new to CakePHP and I am having trouble doing
something relatively simple... I have a database of members and I need
to record transactions between members. At its most simple, each
transaction entry needs an amount, a sender id and a receiver id. So my
database looks something like this:

Table 'members'
- id

Table 'transactions'
- id
- member_to
- member_from
- amount

It is important to differentiate between the sending member and the
receiving member. I am new to hasMany, but I surmise that my
controllers should look something like this:

class MembersController extends AppController {
var $name = 'Members';
var $hasMany = array('Credit' = array('className' = 'Transaction',
'conditions' = '', 'order' = '', 'limit' = '', 'foreignKey' =
'member_to', 'dependent' = false, 'exclusive' = false, 'finderQuery'
= ''),
'Debit' = array('className' = 
'Transaction', 'conditions' = '',
'order' = '', 'limit' = '', 'foreignKey' = 'member_from',
'dependent' = false, 'exclusive' = false, 'finderQuery' = ''));
}

class TransactionsController extends AppController {
var $name = 'Transactions';
var $scaffold;
var $belongsTo = array('From' = array('className' = 'Member',
'conditions' = '', 'order' = '', 'foreignKey' = 'member_from'),
'To' = array('className' = 'Member', 
'conditions' = '', 'order'
= '', 'foreignKey' = 'member_to'));
}

So, although this makes sense to me, when I load a member (using
$this-Member-findById) and print out the array (using print_r()), I
only see the 'Member' array... no 'Debit' or 'Credit' arrays... What am
I doing wrong? Are my hasMany/belongsTo statements wrong? I get no
errors.

Thanks!






--~--~-~--~~~---~--~~
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
-~--~~~~--~~--~--~---



Re: Multiple hasMany / belongsTo

2007-01-16 Thread anselm




What am
I doing wrong? Are my hasMany/belongsTo statements wrong? I get no
errors.


It looks correct to me too (but I'm also quite new to CakePHP ;) ). Did
you enable SQL debug output (in app/config/core.php) ? Did it try to
generate the SQL for the associations, or did it not even try that ?

Anselm


--~--~-~--~~~---~--~~
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
-~--~~~~--~~--~--~---



Re: Multiple hasMany / belongsTo

2007-01-16 Thread squidliberty


A-ha! I have no idea what I was thinking :) Thanks! It seems to be
working properly now.


--~--~-~--~~~---~--~~
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
-~--~~~~--~~--~--~---



Re: Model behavior (hasMany/belongsTo etc.)

2007-01-15 Thread anselm



class User extends AppModel
{
   var $name = 'User';

   var $hasMany = array(
   'Message' =array(
   'className' = 'Message',
   'conditions'= 'User.id = 
Message.from_id',
   'foreignKey'= 'user_id'
   )
  );

}



From what I understand of the manual (though I may be wrong), the

'conditions' field  should be used to add extra condtions but not the
linking expression itself, which is generated by Cake. What's more,
when running a query from 'Message' it will look at the relationship
defined in 'Message' (the 'belongsTo' array) but not the one in 'User'
-- so your 'condition' is ignored. I think you should remove this
'conditions'.

To get the User records the primary key of which is equal to the
'from_id' in your Message, you should define the Message association
this way :

class Message extends AppModel {
   var $name = 'Message';
   var $belongsTo = array('User' =
 array(
 'className'  = 'User',
 'foreignKey'   = 'from_id'
 )
);
}

Then running

$message = $this-Message-findAll('Message.user_id=1');


Should return the expected data. Note that you can create new
associations on the fly (if you need different foreignKey) use
bindModel/unbindModel (see the manual chapter about models).

Anselm


--~--~-~--~~~---~--~~
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
-~--~~~~--~~--~--~---



Multiple hasMany / belongsTo

2007-01-15 Thread squidliberty


Hi, I am still pretty new to CakePHP and I am having trouble doing
something relatively simple... I have a database of members and I need
to record transactions between members. At its most simple, each
transaction entry needs an amount, a sender id and a receiver id. So my
database looks something like this:

Table 'members'
- id

Table 'transactions'
- id
- member_to
- member_from
- amount

It is important to differentiate between the sending member and the
receiving member. I am new to hasMany, but I surmise that my
controllers should look something like this:

class MembersController extends AppController {
var $name = 'Members';
var $hasMany = array('Credit' = array('className' = 'Transaction',
'conditions' = '', 'order' = '', 'limit' = '', 'foreignKey' =
'member_to', 'dependent' = false, 'exclusive' = false, 'finderQuery'
= ''),
'Debit' = array('className' = 
'Transaction', 'conditions' = '',
'order' = '', 'limit' = '', 'foreignKey' = 'member_from',
'dependent' = false, 'exclusive' = false, 'finderQuery' = ''));
}

class TransactionsController extends AppController {
var $name = 'Transactions';
var $scaffold;
var $belongsTo = array('From' = array('className' = 'Member',
'conditions' = '', 'order' = '', 'foreignKey' = 'member_from'),
'To' = array('className' = 'Member', 
'conditions' = '', 'order'
= '', 'foreignKey' = 'member_to'));
}

So, although this makes sense to me, when I load a member (using
$this-Member-findById) and print out the array (using print_r()), I
only see the 'Member' array... no 'Debit' or 'Credit' arrays... What am
I doing wrong? Are my hasMany/belongsTo statements wrong? I get no
errors.

Thanks!


--~--~-~--~~~---~--~~
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
-~--~~~~--~~--~--~---



Model behavior (hasMany/belongsTo etc.)

2007-01-14 Thread php078


Hello everyone,

I have a problem and I hope anyone of you can help me with that.
Certainly I have read a lot of topics about hasMany and the likes, but
so far I couldn't find the answer I need.

Let me start by explaining what I want:


For now I have 2 models: message.php and user.php

[code]
class Message extends AppModel {
  var $name = 'Message';
  var $belongsTo = array('User' =
array(
'className'  = 'User',
'foreignKey'   = 'user_id'
)
   );
/*
AND
*/

class User extends AppModel
{
   var $name = 'User';

   var $hasMany = array(
'Message' =array(
'className' = 'Message',
'conditions'= 'User.id = 
Message.from_id',
'foreignKey'= 'user_id'
)
  );

}

[/code]

Ok sofar for the models.

The thing I want is to do a select on the messages table getting all
the messages send to a certain id. For now with this setup it's
possible. However.. I want to get the username who have sent the
message.


I tried to do it with a ordinary query on my db and that worked:
[sql code]
SELECT m.user_id, m.from_id, m.subject, m.content, u.username
FROM users u, messages m
WHERE  u.id = m.from_id
AND m.user_id = 1
[/sql code]

outputs:
user_id  from_id subject content username
   2   1subject contentsXYZ


Which is the result that I want.


Here's the controller code:
[code]
var $uses=array('Message','User');

function xyz()
{
   $message = $this-Message-findAll('Message.user_id=1');
   pr($message);
}
[/code]

cake gives me back this:
[array output snippet]
[0] = Array
   (
   [Message] = Array
   (
   [id] = 3
   [user_id] = 1
   [from_id] = 2
   [created] = 2007-01-14 13:53:53
   [subject] = 2nd message from test to username
   [content] = bdfiugfigsdifgisudgfiudsf
fljhfughofdhpgifhoghdfg
sdfghfsoguhodhfgohfdohg
sdlghfdouhgodfhgohdfohodf

   )

   [User] = Array
   (
   [id] = 1
   [useremail] =
   [username] = username
   [userpassword] = #
   [userfirstname] = first
   [userlastname] = last
   [created] = now()
   [delete_date] = -00-00 00:00:00
   [ip] =
   )

   )
[/array output snippet]
Which is not what I want. I want to get the username and the messages
this 'from_id' sent.

So my question.. how do I get cake to give me back the same output as
the ordinary query?
Hope anyone can help me with this.


Thanks in advance!


Greets Ed


--~--~-~--~~~---~--~~
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
-~--~~~~--~~--~--~---



Re: hasAndBelongsToMany vs hasMany BelongsTo..... (long and boring)

2006-04-06 Thread Gustavo Carreno

On 4/6/06, zis [EMAIL PROTECTED] wrote:
 Gustavo,
 lol. you win the most perseverant reader award.

Thanks !!
Could you fax it to my inbox ? ;)

--
 If you know Red Hat you know Red Hat,
If you know Slackware you know Linux 

--~--~-~--~~~---~--~~
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
-~--~~~~--~~--~--~---



Re: hasAndBelongsToMany vs hasMany BelongsTo..... (long and boring)

2006-04-06 Thread nate

You certainly could, that makes perfect sense.


--~--~-~--~~~---~--~~
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
-~--~~~~--~~--~--~---



hasAndBelongsToMany vs hasMany BelongsTo..... (long and boring)

2006-04-05 Thread zis

Hi,

I am currenlty building a directory with cake and have a fairly complex
architecture. I'dd like to have your opinion for the best model setup.

Here are two of my tables:

venues: is the table who holds the list of venues and has the following
fields:
id, name, description

areas: holds the list of different geographical areas.. and has the
following fields:
id, name

for example, a venue could be McDonalds. and areas could be, downtown,
old part, business district...

Now, each venue could be in many areas (a McDonalds in downtown and
business dist..).. but also each district can have many venues in it
(there could be a mcdonalds and a Burger King in downtown).

Anyone still following? the logical was of linking them is doing a link
table with venue_id and area_id.. and put a $hasAndBelongsToMany in
both venues and areas models.

The problem is: the downtown mcdonalds could have a drive through but
the business district doesnt.. or a non smoking area. .or offers
breakfast..  or whatever.. the point is, each venue/area combination
has unique settings..
to solve this i evolved the link table into a more elaborate one with
the following fields:

id, venue_id, area_id, smoking, parking, drivethrough... basically,
the link ids and the option fields..

Now the tricky part (If someone is still following, WOW). I created a
model and controller for the new table i called details. The question
is, should the venues and areas models still have $hasAndBelongsToMany
= ;details'? or should venues and areas should have a $hasMany =
'details' and the details model have $belongsTo areas and
venues


If anyone understood anything and has an answer... thanks.. really.


--~--~-~--~~~---~--~~
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
-~--~~~~--~~--~--~---



Re: hasAndBelongsToMany vs hasMany BelongsTo..... (long and boring)

2006-04-05 Thread zis

Thanks AD7six. Nate's reply is exactly the answer i was looking for.. i
guess i must have tried searching..

Oh.. and i didn't expect anyone to read the whole post.. i couldn't
even read it to check for mistakes ;)

zis


--~--~-~--~~~---~--~~
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
-~--~~~~--~~--~--~---



Re: hasAndBelongsToMany vs hasMany BelongsTo..... (long and boring)

2006-04-05 Thread Gustavo Carreno

On 4/5/06, zis [EMAIL PROTECTED] wrote:
 Oh.. and i didn't expect anyone to read the whole post.. i couldn't
 even read it to check for mistakes ;)

If there is a prize on reading the whole post, where do I claim it ? ;-)

--
 If you know Red Hat you know Red Hat,
If you know Slackware you know Linux 

--~--~-~--~~~---~--~~
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
-~--~~~~--~~--~--~---