使用しているケーキのバージョンを指定していません。常にそうしてください。バージョンの間に多くのことが変わるので、それについて言及しないと、多くの誤った答えが得られます。
たとえば、最新の2.3.0を使用している場合は、新しく追加されたクエリメソッドを使用できます。
$id = $this->request->query('id'); // clean access using getter method
コントローラで。
http://book.cakephp.org/2.0/en/controllers/request-response.html#CakeRequest::query
しかし、古い方法も機能します。
$id = $this->request->params->url['id']; // property access
$id = $this->request->params[url]['id']; // array access
名前付きは使用できません
$id = $this->request->params['named']['id'] // WRONG
URLを。にする必要がありますwww.example.com/tester/retrieve_test/good/id:012345
。したがって、havelockの答えは正しくありません
次に、IDをフォームのデフォルトに渡します。または、フォームが送信された後、直接saveステートメントに渡します(ここで非表示フィールドを使用する必要はありません)。
$this->request->data['Listing']['vt_tour'] = $id;
//save
本当にフォームに渡す必要がある/したい場合は、次のelseブロックを使用して$this->request->is(post)
ください。
if ($this->request->is(post)) {
//validate and save here
} else {
$this->request->data['Listing']['vt_tour'] = $id;
}