人力検索はてな
モバイル版を表示しています。PC版はこちら
i-mobile

cakephpの基礎的な質問です。
コントローラーでidをパラメータにする場合、下記のような記述になるとチュートリアルにあります。
function edit($id = null)
セキュリティ的な理由で、function edit($id)にしないのだと思いますが、どのような理由かご教授ください。

●質問者: umakoya
●カテゴリ:インターネット ウェブ制作
✍キーワード:CakePHP コントローラー セキュリティ チュートリアル パラメータ
○ 状態 :終了
└ 回答数 : 2/2件

▽最新の回答へ

1 ● krese
●35ポイント ベストアンサー

こちらのチュートリアルでよろしかったでしょうか。

http://book.cakephp.org/ja/view/340/%E6%8A%95%E7%A8%BF%E8%A8%98%...

ひとつ注意: CakePHPは、'id'フィールドがデータ配列の中に存在している場合は、モデルを編集しているのだと判断します。もし、'id'がなければ、(addのビューを復習してください。)save()が呼び出された時、Cakeは新しいモデルの挿入だと判断します。

と書かれているように、addをeditに兼ね合いさせているだけだと思います。

2つあると冗長になるからでしょうか。(ただその場合、チュートリアルのだとメッセージが適当ではない気もしますが・・・)


別段、editを$id必須にし、addと住み分けても問題はないと思います。

◎質問者からの返答

まさにこのチュートリアルです。

edit($id = null)とedit($id)の違いはidを必須にするかどうかで、

後者だとidのパラメータなしでfunctionを呼び出すとエラーになるという理解で良いでしょうか??


2 ● krese
●35ポイント

その通りです。

そちらについては

http://jp.php.net/manual/ja/functions.arguments.php#functions.ar...

に詳しい説明が掲載されています。


「デフォルト引数値」という機能(?)で

edit($id = null)とedit($id)の違いはidを必須にするかどうかで、

後者だとidのパラメータなしでfunctionを呼び出すとエラーになるという理解で良いでしょうか??

という理解で間違いないです。

◎質問者からの返答

cakephpと言うよりもPHP自体の機能だったのですね。

大変ありがとうございました。

関連質問


●質問をもっと探す●



0.人力検索はてなトップ
8.このページを友達に紹介
9.このページの先頭へ
対応機種一覧
お問い合わせ
ヘルプ/お知らせ
ログイン
無料ユーザー登録
はてなトップ