CakePHP 2.0 Read Recursive

Something that caught me out when I was using CakePHP at first

This is something that caught me out several times when I was new to CakePHP, so I thought I would post it here in case you are in a similar situation.

Basically I was hitting issues that when I was viewing the variables available to a view (using the CakePHP Debug Toolbar) were I was noticing that I was bringing back far more information than I needed (and occasionally, not enough)

Bringing back too much information is never a good thing, it is inefficient and a possible security leak.

The reason for this is that in CakePHP the Read, Find or FindAll takes in a value called Recursive.

To set the level of recursion you do something similar to the following;

$this->Model->recursive = 1

There are 4 settings, which can be read about in detail in the CakePHP Book, but basically you can use this to make Read, Find or FindAll not perform JOINS (or perform more of them!).

Be sure that your selections only ever return the data they need to and no more.


Recent posts View all

Ruby

How to ignore Bullet in RSpec tests

Using Bullet during a test can pick up mistakes but also has false negatives; here is an easy way to ignore them

Ruby

How we used Nokogiri to fix a sizing issue in YouTube's oEmbed

At some point, one of our calls to YouTube's oEmbed endpoint was returning videos way too small; we fixed in in our Rails application by using Nokogiri