3
我在我的系統中的一些定製路由:與自定義表單上傳現場要求現場()的自定義實現
---
Name: mysiteroutes
---
Director:
rules:
'create//$Action': 'CreateController'
其中有一個自定義的控制器來創建表單:
class CreateController extends Page_Controller{
private static $allowed_actions = array(
'submit'
);
public function link($action = null) {
return $this->join_links('create/', $action);
}
public function index() {
$form = Form::create(
$this,
'',
FieldList::create(
TextField::create('Name', 'Name'),
$upload = new UploadField('Upload', 'Upload')
),
FieldList::create(
FormAction::create('submit', 'Submit')->setAttribute('class', 'btn btn-success')
),
RequiredFields::create('Name')
);
if($this->request->isPost()) return $form;
return $this->customise(array('Form'=>$form))->renderWith(array("Create", "Page"));
}
public function submit($data, $form = null) {
$params = $this->getRequest()->params();
var_dump($params);
}
}
當我試着在控制器上上傳一個叫Field()
的東西,然後失敗,因爲它不在那裏。我可以添加它並正確調用它,但是我不知道應該放入什麼內容。我已經瀏覽了UploadField.php
中的Field()
函數,但是有很多代碼可能不應該被複制。
我應該如何管理我的自定義控制器中的文件上傳,或者我可以以某種方式將其轉發到核心框架?
非常感謝您回答我的所有問題。關於表單的自定義路由沒有太多的細節,或者一般來說SilverStripe是一個恥辱,因爲它是一個很棒的框架。 – Rudiger
沒問題,我很樂意提供幫助。這個答案對你有幫助嗎? –
它在工作,所以我將不得不稍後測試,我相信它會但不得不檢查。 – Rudiger