好的,所以我對CakePHP很新穎。這是設置:通過窗體傳遞參數給控制器(CakePHP)
我有一個模型(預約)和控制器(ReservationController)。
我想提供一個簡單的add()功能。
請求URL是:www.example.com/reservations/add/3
凡在此預留爲事件的ID。 到目前爲止,這麼好。問題是,形式構造是這樣的:
<h2>Add reservation</h2>
<?php echo $form->create('Reservation');
echo $form->input('first_name');
echo $form->input('last_name');
echo $form->input('email');
echo $form->input('tickets_student'); echo $form->input('tickets_nstudent');
echo $form->end('Add');?>
當我點擊發送按鈕,請求URL變得簡單www.example.com/reservations/add/,事件ID丟失。
我已經在控制器抓住ID現在解決了它,並使其可到窗體:
// make it available for the form
$this->set('event_id', $eventid);
,然後在表格:
$form->create('Reservation',array('url' => array($event_id)));
它的工作原理,但它讓我覺得有點難看。沒有更簡單的方法來確保表單POST動作獲取到當前的url,而不是沒有id的url嗎?
我同意你的看法,因爲我用同樣的形式在我的項目添加和編輯,這將是混亂的,但如果@Forceflow使用兩個單獨的行動,我相信它會好的,因爲他只會在添加動作時傳遞這個變量。然後在編輯中他會知道事件,並且不需要在URL中傳遞。但是,我們的假設中有太多的假設。 :) – 2010-10-22 15:30:46