CakePHP 3.0では、名前付きパラメーターが削除されました(神に感謝します)。私はまだ他のMVCフレームワークでは、たとえばASP.NETのためにあなたがのActionResult(関数と同じ)でパラメータを渡すということですが、周りに私の頭を取得するために苦労しています何CakePHP 3.0クエリー文字列パラメーターと渡されたパラメーター
:
Edit(int id = null) {
// do stuff with id
}
そして、そのメソッドは、/Edit?id=1
のようなクエリ文字列としてIDを渡します。そして、あなたはそれをかなり好きにするためにルーティングを使います:/Edit/1
。 CakePHPでは
は、しかし、のような関数パラメータ内で渡されるもの:クエリ文字列のアイディアともURLを向上させるためにルーティングする必要性を回避/Edit/1
:
function edit($id = null) {
// do stuff with $id
}
は次のように渡されたパラメータとして行われなければなりません。
私は次のようにその編集用リンクでのparamsに名前を付ける場合:
public function edit() {
$id = $this->request->query('id');
// do stuff with $id
}
を渡されたパラメータIDで取得するには:私は、しなければならない
$this->Html->link('Edit', array('action' => 'edit', 'id' => $post->id));
。それはCakePHP 3.0用のASP.NETのような機能でそれを拾うだろうと思っていましたが、そうではありません。私だけではなく、それらを渡すの編集リンクで渡された値の前に付けることを好む
ので、私はもう一方の端に限り序を心配する必要はありませんし、私は彼らが何であるかを知っているなど
います誰もがCakePHPのメソッドにデータを渡すこれらの方法のいずれかを使っていて、正しいやり方とバージョン3.0の変更がこのエリアのものをどのように改善するかをもっと明らかにすることができます...
なぜCakePHPはあなたがそれのように種類の間で選択することができません私はこれまで見てきたことから、あなたがきれいなバージョン(これは渡されたパラメータ経由でCakePHPにデフォルトで表示される)を作るためにルータを使うまで、クエリ文字列にデフォルト設定することで、情報Jose、ありがとう、ありがとう、ありがとう。 – Cameron