Your usage of find() is incorrect in the example: find('count'), ...
should be find('count', ...
That being said, to access associated model from a controller you
would use:
$this->Motive->Point->find('count',
array('conditions'=>array('Point.user_id'=>$userId, 'Point.motive_id'=>
$motiveId... etc..
On Sep 4, 9:31 am, luigi7up <[EMAIL PROTECTED]> wrote:
> Hello Im having problem with performing find function in following
> scenario:
>
> I have a voting sistem for motives in gallery. User can vote only once
> for one motive. So in table Points there is an entry with
> corresponding user_id and motive_id when user votes.
>
> I have three models: USER, Motive, Points
>
> User $hasMany motives
> Motive $belongsTo user
>
> Motive $belongsTo User
> Motive $hasMany motivePoints
>
> Points $belongsTo Motive
> Points $belongsTo User
>
> When user wants to vote i have to perform following SQL query to check
> if he already voted :
>
> Select * from motives _points WHERE user_id='$id' AND motive_id =
> '$motive_id'
>
> I want to perform find('count') with this conditions in
> Motives_controller. If it returns >0 , user already voted for this
> motive. I tried this:
>
> $this->Motive-
>
> >find('count'),array('conditions'=>array('Point.user_id'=>26))
>
> It should return 1 because there is only one entry for user 2 in table
> Points but it returns 3
>
> If I look in debug($this->Motive-
>
> >find('all'),array('conditions'=>array('Point.user_id'=>26))) i get:
>
> ***************************************************
> ***************************************************
>
> Array
> (
> [0] => Array
> (
> [Motive] => Array
> (
> [id] => 1
> [user_id] => 26
> [title] => Nije Vuk Ovca
> [folder] => motives/motiv_1
> [points] => 45
> [created] => 2008-09-01 11:44:45
> [modified] => 2008-09-01 15:07:48
> )
>
> [User] => Array
> (
> [id] => 26
> [username] => luigi7up
> [password] => 670a2a8ff7b5df64e8205775d4666b55
> [email] => [EMAIL PROTECTED]
> [first_name] => Luka
> [last_name] => Eterovic
> [group_id] => 2
> )
>
> [Point] => Array
> (
> )
>
> )
>
> [1] => Array
> (
> [Motive] => Array
> (
> [id] => 2
> [user_id] => 27
> [title] => Killabear
> [folder] => motives/motiv_2
> [points] => 130
> [created] => 2008-09-01 11:46:08
> [modified] => 2008-09-03 17:16:31
> )
>
> [User] => Array
> (
> [id] => 27
> [username] => gazda
> [password] => 7be96ec0264ec22ea292b1484ec88da3
> [email] => [EMAIL PROTECTED]
> [first_name] => Administratrija
> [last_name] => Admic
> [group_id] => 3
> )
>
> [Point] => Array
> (
> [0] => Array
> (
> [id] => 1
> [user_id] => 26
> [motive_id] => 2
> [points] => 5
> [created] => 0000-00-00 00:00:00
> [modified] => 0000-00-00 00:00:00
> )
>
> )
>
> )
>
> [2] => Array
> (
> [Motive] => Array
> (
> [id] => 3
> [user_id] => 31
> [title] => Funny Geraffe
> [folder] => motives/motiv_3/
> [points] => 38
> [created] => 2008-09-01 15:20:23
> [modified] => 2008-09-04 10:57:43
> )
>
> [User] => Array
> (
> [id] => 31
> [username] => marljivi
> [password] => eb01e22ae152e997783f9617c4dd535f
> [email] => [EMAIL PROTECTED]
> [first_name] => Marljivi
> [last_name] => Marljivi
> [group_id] => 3
> )
>
> [Point] => Array
> (
> )
>
> )
>
> )
>
> ***************************************************
> ***************************************************
>
> I was playing with recursive = 2 and behaviour Containable to get this
> work but I need help.
>
> Summary:
> I need check in Motives_Controller if table Points, that is
> assocciated to motives table, contains user_id & motive_id values and
> return true/false or number of records...
>
> Thanks
--~--~---------~--~----~------------~-------~--~----~
You received this message because you are subscribed to the Google Groups
"CakePHP" group.
To post to this group, send email to [email protected]
To unsubscribe from this group, send email to [EMAIL PROTECTED]
For more options, visit this group at
http://groups.google.com/group/cake-php?hl=en
-~----------~----~----~----~------~----~------~--~---