Wednesday, May 29, 2013

Re: containable problem

The message is telling you what is wrong, you are asking containable to contain the starting Model again

$users = $this->User->find('all',
  array(
    'conditions' => $cond2
  ),
  array(
    'contain' => array(
      'Attendance' => array(
        'conditions' => $cond
      ),
      'Usermembership'
    )
  )
);


I think there's the problem, make your code like this:

$users = $this->User->find('all',
  array(
    'conditions' => $cond2,
    'contain' => array(
      'Attendance' => array(
        'conditions' => $cond
      ),
      'Usermembership'
    )
  )
);


I always indent arrays inside finds to the extremes, especially if something is wrong because it helps to understand hierarchy and nesting better. You can always compact it to a single line if you think it's better later

On Wednesday, May 29, 2013 6:10:47 AM UTC+3, Robert Gravel wrote:
Hi experts,

I am having an issue with containable. I have no problems returning the proper records for Attendance condition but the database call will still return all users in database with empty attendance field.
I need to return only User.school_id that match admin's $session_school_id

tried this
$this->User->Behaviors->attach('Containable');
$from =  $this->data['User']['start_date']['year'] . "-" . $this->data['User']['start_date']['month'] . "-" . $this->data['User']['start_date']['day'];
 $to =  $this->data['User']['end_date']['year'] . "-" . $this->data['User']['end_date']['month'] . "-" . $this->data['User']['end_date']['day'];
$cond = array('Attendance.created BETWEEN ? AND ?' => array($from, $to), 'Attendance.school_id' => $session_school_id);
// return only school user
$cond2 = array('User.school_id' => $session_school_id);
$users = $this->User->find('all', array('contain' => array('Attendance' => array('conditions' => $cond), 'Usermembership', 'User' => array('conditions' => $cond2) )));

this gives me Warning (512): Model "User" is not associated with model "User"

and tried this

$users = $this->User->find('all', array('conditions' => $cond2), array('contain' => array('Attendance' => array('conditions' => $cond), 'Usermembership' )));

does not work either.

cake 1.3
Thank you
Robert

--
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+unsubscribe@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.
 
 

No comments: