我已经定义了一个模型(我知道,我应该使用命名空间,但这会导致我遇到其他问题,所以我决定暂时离开它):
class Tx_SimpleOrders_Domain_Model_File extends \TYPO3\CMS\Extbase\DomainObject\AbstractEntity {
...
}
并且控制器有两种插件方法。第一个是显示表单,第二个是将表单数据保存到持久层。没什么了不起的。
class Tx_SimpleOrders_Controller_FileController extends \TYPO3\CMS\Extbase\Mvc\Controller\ActionController {
public function showAction() {
echo "<pre>";
var_dump( class_exists('Tx_SimpleOrders_Domain_Model_File') );
echo "</pre>";
}
/**
* Creates a new file
*
* @param Tx_SimpleOrders_Domain_Model_File $newFile A fresh File object which has not yet been persisted
* @return void
*/
public function createAction(Tx_SimpleOrders_Domain_Model_File $newFile) {
echo "<pre>";
var_dump($_POST["tx_simpleorders_upload"]["newFile"]);
echo "</pre>";
}
}
正确调用show
操作。我使用了 - 如您所见 - 转储class_exists('Tx_SimpleOrders_Domain_Model_File')
并返回true
。所以模型存在。
当我提交表单
时,我总是收到错误The argument type for parameter $newFile of method Tx_SimpleOrders_Controller_FileController->createAction() could not be detected.
根据文档,如果我没有指定参数的类(如此处https://docs.typo3.org/typo3cms/extensions/efs/ExtExtensionFromScratch/Target7ASimpleCrudApplicationTheFePlugins/TheSubmitForm/Index.html所示),我会得到此异常。
但我做到了。
那么这里的问题是什么?
以下是视图的流体“代码”:
{namespace so=Tx_SimpleOrders_ViewHelpers}
<f:form enctype="multipart/form-data" method="post" controller="File" action="create" name="newFile" object="{newFile}">
<f:form.textfield property="identifier" /><br />
<f:form.textarea property="description" rows="3" cols="40" /><br />
<!--<f:form.upload property="image" /><br />-->
<f:form.submit class="submit" value="Hochladen" />
</f:form>