一覧ページにあるレコードを、複製して新規登録する処理を作成しています。
その際、複製して保存するのではなく、複製するために入力画面を呼び出し、そこに複製元に登録されている値をあらかじめ入力値として編集した状態で入力画面を表示する、という処理を作っています。
コントローラーの処理は以下の通りです。
PHP
1 public function copyAdd($id = null) 2 { 3 $name = $this->names->get($id, [ 4 'contain' => [] 5 ]); 6 7 $this->set(compact('name')); 8 $this->set('_serialize', ['name']); 9 $this->render("add"); 10 }
これを↓こんな感じの URLで呼び出します。
http://example.com/names/copy-add/45
呼び出すテンプレートファイルに記述されているフォームヘルパーの create句は以下の通りとなっています。
PHP
1<?= $this->Form->create($name,["url" => ["action" => "add"]]) ?>
そして、create句で生成される formタグは以下の通りとなります。
HTML
1<form method="post" accept-charset="utf-8" action="/names/add/45"> 2
この時、「action」の部分が「/names/add/45」となっていますが、最後の「45」を出ないようにしたいのですが、方法はありますでしょうか?
PHP
1<?= $this->Form->create($name,["url" => ["action" => "add",10]]) ?> 2
の様に設定すると、「45」の値が「10」になりますので、
PHP
1<?= $this->Form->create($name,["url" => ["action" => "add",null]]) ?> 2<?= $this->Form->create($name,["url" => ["action" => "add",false]]) ?> 3<?= $this->Form->create($name,["url" => ["action" => "add",0]]) ?> 4<?= $this->Form->create($name,["url" => ["action" => "add",""]]) ?>
などを設定してみましたが、「45」の値を出ないようにすることはできませんでした。
そもそも望んでいることはできないのでしょうか?
回答2件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2017/02/09 09:42