LoginSignup
25
25

More than 5 years have passed since last update.

CakePHP3メモ

Last updated at Posted at 2014-10-22
  • デバッグログを取る

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();
25
25
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
25
25