That sould have been:
$this->Member->contain(array(
'County' => array(
'Region' => array(
'conditions' => array('Region.id' => $id)
)
)
));
$members = $this->Member->find('all');
On Jul 8, 12:58 pm, Robert P <[email protected]> wrote:
> Matt Curry does a good job of providing a default model setup for any
> new application. If AppController doesn't already exist, create /app/
> app_controller.php and add the following class, or copy the attributes
> into your current one:
>
> class AppController extends Controller {
> var $actsAs = array('Containable');
> var $recursive = -1;
> }
>
> Doing so shouldn't require you to rework any of your code, but it will
> reduce database overhead when dealing with hasMany and HABTM
> relationships (provided you use the syntax of course). Then change
> your find call to use Containable:
>
> $this->Member->contain(
> 'County' => array(
> 'Region' => array(
> 'conditions' => array('Region.id' => $id)
> )
> )
> );
> $members = $this->Member->find('all');
>
> I'm flying blind here, but hopefully it works. You can also pass the
> contain settings to Model::find() each time, though it's too heavy for
> complex joins:
>
> $members = $this->Member->find('all', array('contain' => array(
> 'County' => array(
> 'Region' => array(
> 'conditions' => array('Region.id' => $id)
> )
> )
> )));
>
> http://book.cakephp.org/view/474/Containable
>
> On Jul 8, 10:17 am, "Dave Maharaj :: WidePixels.com"
>
> <[email protected]> wrote:
> > Use "contain"
>
> > There is a chapter in the cookbook how to get only the records from related
> > models and not pull all the un-necessary info.
>
> > Dave
>
> > -----Original Message-----
> > From: Alastair [mailto:[email protected]]
> > Sent: July-07-09 10:31 PM
> > To: CakePHP
> > Subject: More HABTM questions - querying data
>
> > Robert P kindly solved a problem I was having with updating records in a
> > HABTM relationship so many thanks to him for that!
>
> > I'm now trying to query the data but have added an additional model to my
> > system, Regions. So it looks something like:
>
> > Members HasAndBelongsToMany County
> > County BelongsTo Region (and Region hasMany County)
>
> > I'm trying to return members that belong to Region.id = 1 and am using this
> > to do so:
>
> > $members = $this->Member->County->Region->find('all', array ('conditions' =>
> > array('Region.id' => $id), 'recursive' => 2));
>
> > This does return all members belonging to Region 1 but it also returns a
> > whole lot of other information with it. Is there any way I can construct a
> > query that literally just returns the corresponding members?
>
> > The above returns the following data:http://bin.cakephp.org/saved/48057
>
> > which includes County and Region data and in this instance, I don't need it.
> > I'll live with it if I need to but I'd rather I didn't have to! Removing
> > 'recursive' => 2 results in just the Region and County data being returned.
>
> > 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 [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
-~----------~----~----~----~------~----~------~--~---