2015年12月9日水曜日

CakePHP 3で、単一データの取得

CakePHP 3で、単一データの取得です。ORMのQuery Builderを使うと良いらしい。

src/Controller/UsersController.php

正しい例
$user = $this->Users->find()
    ->where(['Users.key' => $key])
    ->first();
悪い例(動作しません)
$user = $this->Users
    ->where(['Users.key' => $key])
    ->find();
最初「->find()」句はどこに置いても関係ないだろうと思っていたのでハマりました。必ず、テーブルオブジェクトの後に位置していないといけません。その後に「->where()」句や「->order()」句などの条件が来ます。順序をまとめると、こんな感じ。

$user = $this->Users
    ->find()
    ->select()
    ->where()
    ->order();

実際に設定してみたサイトがこちら

参考サイト
Query Builder (CakePHP Cookbook 3.x documentation)

0 件のコメント:

コメントを投稿