2011-07-16 8 views
5

私は自分の予定を作成できるように私のアプリにリンクを作成しましたが、何らかの余分なデータを渡す必要があるため、予定を予約するクライアントをアプリが知っています。どうすればいい?CakePHP

<li><?php echo $this->Html->link('Book Appointment', array('admin' => true, 'controller' => 'appointments', 'action' => 'add')); ?></li>

だから、URLのようなものになります:/admin/appointments/add?clientid=2

注:誰かがこれはこれを行うには悪い方法であると考える場合もなどの代替ソリューションとコメントしてくださいおかげ

答えて

12

私はこれで見つけましたドキュメント:http://book.cakephp.org/view/1442/link

あなたは次の操作を行うことができます。

<li><?php echo $this->Html->link('Book Appointment', array(
    'admin' => true, 
    'controller' => 'appointments', 
    'action' => 'add', 
    '?' => array('clientid' => $clientId)) 
); ?></li> 

私はCakePHPをインストールしていないので、コードはテストされていません。私はそれを使ってから長い時間がかかりました。私はあなたがドキュメントを見ても動作する例を得ることができると確信しています。

3

idを名前付きパラメータまたは名前のないパラメータとして転送できます。

名前のパラメータ(簡単な方法)、idが$clientIdであると仮定すると:

$this->Html->link('Book Appointment', array('admin' => true, 'controller' => 'appointments', 'action' => 'add', $clientId))とURLがコントローラで/admin/appointments/add/2

次のようになります。function add($clientId) { ... }パラメータ名前

$this->Html->link('Book Appointment', array('admin' => true, 'controller' => 'appointments', 'action' => 'add', 'clientId' => $clientId))のように見えます。/admin/appointments/add/clientId:2

コントローラ内:function add() { $clientId = $this->params[ 'named' ][ 'clientId' ]; ... }

+0

これは、指定されたパラメータを使用するための最良の答えです。 – ramayac

+0

ええ、 '/?x = y'を使っているのは本当に"ケーキ "ではありません。 – JJJ

+0

しかしそれはCakePHP 3.0と一緒になります – Reuben