Hello, I'm fairly new to cakephp and have a few pretty basic questions about fetching data from arrays:
here is what i have set up Models: class Customer extends AppModel { public $hasMany = array('Device','Change'); } class Device extends AppModel { public $belongsTo = 'Customer'; } class Change extends AppModel { public $belongsTo = 'Customer'; } now anytime I $this->set('customerinfo',$this->Customer->find('first',array('conditions' => array('id'=>$customerId)))); or find('all'), i get everything on that customer, including all devices and all thousands of changes. One of my questions is how should i manage that relationship since i dont want to pull that much change data just to get a customer ID, name and address? Have I built my model relationships too simple to allow for me for limiting what is being sent? question #2 doing the above statement, i get the following returned: array( 'Customer' => array( 'id' => '33', 'name' => 'customer#33', 'totchngavail' => '5', 'totalchanges' => '0' ), 'Device' => array( (int) 0 => array( 'id' => '6', 'customer_id' => '33', 'name' => 'device4', 'type' => 'server', 'os' => 'aix', 'ip' => '123.123.123.123' ), (int) 1 => array( 'id' => '31', 'customer_id' => '33', 'name' => 'dev2', 'type' => 'server', 'os' => 'linux', 'ip' => '123.123.123.123' ) ), 'Change' => array( (int) 0 => array( 'id' => '2', 'customer_id' => '33', 'name' => 'change12', 'number' => '1234567890' ), (int) 1 => array( 'id' => '4', 'customer_id' => '33', 'name' => 'change14', 'number' => '1234567890' ) ///many many more changes ) ) When i try and retrieve all the devices for that customer in a select box for example i try with: echo $this->Form->input('device_id',array('label'=> 'Device Name','style' => 'width: 150px;','type' => 'select', 'options' => displayDevices($customerinfo))); and here is the displayDevices function: function displayDevices($customerinfo){ //a list 'header' so no device is selected by default $var =array(NULL=>'---'); foreach($customerinfo['Device'] as $device) { $var+=array($device['id']=>$device['name']); } return $var; }; So my question is: shouldnt there be a better way of displaying that select list? maybe by some form of $customerinfo['Device']['name'] right into the form input? When i do this i get an index error. I dont see how i should have to manually build an array to populate the select list when the complete customer array with devices comes in from the controller. thanks in advance for your advice. -- 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/d/optout.