BlogCakePHPを中心としたサイト開発情報をメインに公開。新しもの好きなので時々製品レポートなんかも。MASA-P【CakePHP辞典】Tips第3回:Model::read()ModelのTipsが続いてしまいますが、今回はModel::read()についての注意事項です。通常Modelでデータソースからのデータの読み出しはModel::find()/findBy()を用いるのが一般的だと思いますが、ほかの読み出し方法もいくつか存在しています。その中に今回取り上げます「Model::read()」がありますが、こちらは「プライマリIDを指定してレコード取得」を行うことができます。$fields));」に近いと思いますが、意味的にはfindById($id)のほうが近いかもしれません。取り出し方、結果そのものについてはこれらはそれほど差がありませんが、ひとつだけread()には注意点があります。「Model::validationErrors」プロパティにはモデル保存等でバリデーションエラーが存在する場合にそのエラーメッセージが蓄えられるのですが、read()を実行すると問答無用で初期化します。「Model::validationErrors」プロパティを初期化するメソッドは、「Model::read()」のほか「Model::create()」「Model::saveAll()」の合計3メソッドです。read()はcreate()のように「モデルを初期化するためのメソッド」という位置づけなのでしょう。create()はコードで初期値を与えますが、read()は既存のレコードから初期値を与える、という感じですかね。バリデーションエラーを保持して読み換えるような場合はread()は使うべきではない、ということになります。find()/findById()のほうがよいと思います。個人的にはread()はほとんど使わないため「フーン」な仕様なのですが、bakeコマンドでコードを作り出している場合にはread()が含まれたコードを生成するそうなので、注意が必要です。CakePHP辞典」の55ページに掲載されています。CakePHP辞典」を是非よろしくお願いします!アマゾンのサーバでエラーが起こっているかもしれません。一度ページを再読み込みしてみてください。