findするときのconditionsなどにモデル名を書く習慣を付ける
CakePHPのCookbookを読んでると、いろんなところで「SQL内にモデル名を含めましょう」みたいなことが書いてあります。
conditions: 関連モデルのレコードを限定するための SQL。SQL 内でモデル名を使用することを習慣にしておくようにしておきましょう:“approved = 1.” よりも、“Profile.approved = 1” の方が良い記述です。
「へぇそういうものなのか。まぁどっちでもいけるから気にしなくていいか。」
みたいな感じで思ってたんですが、ふとfindの拡張をしようとした時に、
「conditions部分にモデル名が含まれてるかどうか」
を判断したくなったのでどんな風になってるのか確認してみました。
確認したファイルはcake/libs/model/model.php。
場合によって色々やってることは違ったけど、ドットをstrposで探してfalseだったらモデルのaliasを追加しているみたい。
if (strpos($field, '.') === false) { unset($fields[$field]); $fields[$this->alias . '.' . $field] = $value; }