Great thing : bindModel
At present moment a have a lot of free time for self improvement and I can learn CakePHP deeper and deeper, as it possible ;-)
$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");
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 ;-)
3 Comments:
Not so simple and CakePHP-style anymore :)
Use new core Containable behavior
http://cakebaker.42dh.com/2008/05/18/new-core-behavior-containable/
Behavior is nice.
But without "simple" how to get needing count fields?
I don't want to use query like "SELECT *...."
In cake style?
conditions" => array ("MONTH (birthday) = " . $month, "DAY (birthday) = " . $day)
You would have performance issue because the the conditios are not parameterized.
Post a Comment
Subscribe to Post Comments [Atom]
<< Home