1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

CakePHPのget/set/withなどのクラス別まとめ

Last updated at Posted at 2020-12-24

CakePHP初学者がコーディングの時にget/set/withの使い方で迷ったのでクラス別にまとめました。

バージョン:
PHP7.4
CakePHP3.9

リクエストクラス

参考:
https://book.cakephp.org/3/ja/controllers/request-response.html

getParam

ルーティングパラメーターなどを取得する

$controllerName = $this->request->getParam('controller');

getQuery

クエリー文字列パラメーター
キーが存在しない場合nullが返る

// URL は /posts/index?page=1&sort=title
$page = $this->request->getQuery('page');

getQueryParams

全てのクエリー文字列パラメーターにアクセスできる

$query = $this->request->getQueryParams();

ここのページも分かりやすかった
https://qiita.com/egcmrsk/items/5312e81a366c6a6a8209
getQueryParams()について下記のような記載があるけど公式のサンプルコードとの差が理解できず、、

// GET
$this->request = $this->request->withQueryParams([
    'year' => date('Y'),
    'month' => date('n')
]);

getData

リクエストのボディーデータ、全てのPOSTデータはこれを使いアクセスする
キーが存在しなければnullを返す

// name 属性が 'MyModel[title]' の入力は次のようにアクセスします。
$title = $this->request->getData('MyModel.title');

レスポンスクラス

withData

getParsedBody

エンティティクラス

参考:
https://qiita.com/satthi/items/59b689df628a0fcc2ce0

set

テーブルクラスでnewする時など、

get

ビューで呼び出すときなど

おまけ:アクセサーとミューテーター

参考:
https://hacknote.jp/archives/55024/

アクセサーとは、、
プロパティを取得する時に使用する

echo $book->name;
echo $book->get('name');

ミューテーターとは、、
プロパティを設定する時に使用する

$book->name = 'harry potter'; //HARRY POTTER
$book->set('name', 'Harry Potter'); //HARRY POTTER

テーブルクラス

参考:
https://book.cakephp.org/3/ja/orm/table-objects.html

setTable

テーブルを指定、initialize()に記載するのはこちら

getTable

実際に活用する時に使う、単体での処理としてはクエリの実行のためにテーブル名そのもの(string)を返す

※上記は昔のバージョンではtable()として存在して、メソッド内で引数の状態によって処理を分けていたようです。

getRegistryAlias

テーブルインスタンスを作るためにレジストリーキーを取得する
モータルメソッド仕様では引数がnullならgetとして扱っていた

setRegistryAlias

レジストリーキーをセットする
モータルメソッド仕様では引数がnullでない場合引数をセットしていた

おまけ:
インスタンスを取得するのはTableRegistry

1
0
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
1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?