コントローラーでidをパラメータにする場合、下記のような記述になるとチュートリアルにあります。
function edit($id = null)
セキュリティ的な理由で、function edit($id)にしないのだと思いますが、どのような理由かご教授ください。
こちらのチュートリアルでよろしかったでしょうか。
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と住み分けても問題はないと思います。
こちらのチュートリアルでよろしかったでしょうか。
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を呼び出すとエラーになるという理解で良いでしょうか??
その通りです。
そちらについては
http://jp.php.net/manual/ja/functions.arguments.php#functions.ar...
に詳しい説明が掲載されています。
「デフォルト引数値」という機能(?)で
edit($id = null)とedit($id)の違いはidを必須にするかどうかで、
後者だとidのパラメータなしでfunctionを呼び出すとエラーになるという理解で良いでしょうか??
という理解で間違いないです。
cakephpと言うよりもPHP自体の機能だったのですね。
大変ありがとうございました。
まさにこのチュートリアルです。
edit($id = null)とedit($id)の違いはidを必須にするかどうかで、
後者だとidのパラメータなしでfunctionを呼び出すとエラーになるという理解で良いでしょうか??