- デバッグログを取る
use Cake\Log\Log;
Log::write('debug', print_r($result, true));
- 手っ取り早くオブジェクトの時間を生成
use Cake\I18n\Time;
new Time('2014-10-05 01:59:14');
=> Cake\I18n\Time Object になる
- ハイドレートって何?
Cake3のモデルだけど、
注:以下はすべてコントローラ(ReportsController)に書く想定です。
$query = $this->Reports->find();
こういう書き方でクエリーオブジェクトなるものが作られる。
debug($query = $this->Reports->find());
こうするとなんか黄色い画面になって生成されるクエリーが確認できる。
$query->all();
と書けばSQLが実行される。
$results = $query->all();
foreach ($results as $result) {
echo $result->id;
echo $result->created;
}
とすれば取り出せる。
$query = $this->Reports->find();
foreach ($query as $result) {
echo $result->id;
echo $result->created;
}
こう書いてもおんなじ(笑)。all()
は省略可能ってことか。
$query->combine('id', 'name')->toArray();
こうすると
Array ( [1] => yamada [2] => maeda )
というように、idと値で配列にしてくれる。
で、
$query = $this->Reports->find();
このクエリーオブジェクトってのは
$query->toArray();
こうすることで配列に変換できる。
できるんだけど、なんかいろんな情報が一緒に詰まっていて見づらいし、よくわからない。
で、
$query->hydrate(false);
こうすると不要な情報が消えてすっきりするのだ。
$result = $query->hydrate(false)->toArray();