At present moment a have a lot of free time for self improvement and I can learn CakePHP deeper and deeper, as it possible ;-)
In one of my project I have two table with simple relation
Division (id, title) - hasMany Staff
Staff (id, division_id, name, jobtitle..)
So. Now I need to get some info like: I need to get all Staff where birthday today, and get result like:
Array (
[0] => ["Division"] = Array ...
=> ["Staff"] = [0]
[1] ...
But I don't want (or cann't) rewrite model fore staff/division. So, What I must doing?
Of cause I must to use this wonderful thing - bindModel ;-)
Look
$this->Division->bindModel(array("hasMany" => array ("Staff" => array (
"conditions" => array ("MONTH (birthday) = " . $month, "DAY (birthday) = " . $day),
"fields" => array ("Staff.id,Staff.name"),
"order" => array("Staff.name" => "ASC")))));
$staff = $this->Division->find("all");
Also, we can put in field "fields" something like this
"fields" => array ("COUNT (Staff.id) as count")
And we have array with Division and numbers (count of staff with correct birthday)
Simple? yep. And in good cakephp tradition ;-)
Labels: bindModel, cakephp, model, relation