【发布时间】:2016-07-26 03:30:48
【问题描述】:
如果我单击提交按钮将数据从我的SilverStripe 表单发送到数据库 (xampp, mysql),它不会将我重定向回表单页面。相反,它重定向到{BaseUrl}name_of_controller/name_of_form -> 在我的情况下:localhost/pmtool/DeveloperController/NewTaskMask。我已经搜索了几个小时来解决这个问题,但没有任何成功。
这是文件的代码,其中定义了表单和操作。
在另一个 html 文件中,表单将通过$NewTaskMask 调用。通过 URL localhost/pmtool/developer/newtask 将调用函数renderNewTaskForm,将呈现带有$NewTaskMask 的模板。
数据库中确实存在标题、描述等所有字段。
class DeveloperController extends ContentController {
private static $allowed_actions = array('NewTaskMask','renderNewTaskForm');
private static $url_handlers = array(
'newtask' => 'renderNewTaskForm'
);
public function renderNewTaskForm(SS_HTTPRequest $request) {
return $this->renderWith('NewTaskForm');
}
public function NewTaskMask() {
$fields = new FieldList(
TextField::create('Title','Title')
->setAttribute('autocomplete', 'off')
->setAttribute('placeholder', 'Enter a task title ...'),
TextareaField::create('Description','Description')
->setAttribute('autocomplete', 'off'),
DropdownField::create('Project','Project', Project::get()->map('ID','Title')),
DropdownField::create('Developer','Developer', Developer::get()->map('ID','Title'))
);
$actions = new FieldList(FormAction::create('doCreateT','Task anlegen'));
$requiredFields = new RequiredFields(array('Title'));
return new Form($this, 'NewTaskMask', $fields, $actions, $requiredFields);
}
public function doCreateT($data, $form) {
// Creating a new task record
$nT = new Task();
$nT->Title = $data['Title'];
$nT->Description = $data['Description'];
$nT->Project = $data['ProjectID'];
$nT->Developer = $data['DeveloperID'];
$nT->write();
// Create a nice msg for our users
$form->sessionMessage('Task angelegt!','good');
// Redirect back to the form page
return $this->redirectBack();
}
}
【问题讨论】:
标签: silverstripe