Zend framework2 文件上载的编辑操作

Zend framework2 文件上载的编辑操作,zend-framework2,Zend Framework2,接下来,我能够很好地创建文件上传,根据zend教程,editAction与Add操作几乎相同 如果我不在editAction中添加文件上载代码,它可以正常工作,但在添加文件上载后,exchangearray()中会显示错误 无法在第20行的\module\report\src\report\Model\CompanyReport.php中将\Model\CompanyReport类型的对象用作数组 这是模型文件 public function exchangeArray($data) {

接下来,我能够很好地创建文件上传,根据zend教程,editAction与Add操作几乎相同

如果我不在editAction中添加文件上载代码,它可以正常工作,但在添加文件上载后,exchangearray()中会显示错误

无法在第20行的\module\report\src\report\Model\CompanyReport.php中将\Model\CompanyReport类型的对象用作数组

这是模型文件

public function exchangeArray($data)
{
    <-this is line number 20->$this->id       = (isset($data['id'])) ? $data['id'] : null;
    $this->title  = (isset($data['title'])) ? $data['title'] : null;
    $this->company  = (isset($data['company'])) ? $data['company'] : null;
    $this->sector  = (isset($data['sector'])) ? $data['sector'] : null;
    $this->report_date  = (isset($data['report_date'])) ? $data['report_date'] : null;
    $this->report_file = (isset($data['report_file'])) ? $data['report_file'] : null;

}

请为文件上传建议编辑操作。

我认为这不是文件上传代码的问题。您已将实体绑定到表单:

$form->bind($companyreport);
当执行
$form->setData($data)
时,表单将发布的数据与实体绑定。这意味着
$form->getData()
将返回填充了所有数据的实体。这就是错误所说的,它返回的是一个实体(
CompanyReport
),而不是一个数组

$form->getData()
Zend\form\form\getData()
)执行的代码是:

如果要使用
exchangeArray
函数,可以将合并的数组
$data
传递给它。但这是不必要的,当您将表单绑定到实体时,“exchangeArray作业”由表单本身完成

$form->bind($companyreport);
    //IF YOU BIND, $this->object WILL BE THE ENTITY, SO IT'LL RETURN IT    
    if (($flag !== FormInterface::VALUES_AS_ARRAY) && is_object($this->object)) {
        return $this->object;
    }

    //OTHERWISE IT'LL RETURN AN ARRAY WITH POSTED DATA
    $filter = $this->getInputFilter();

    if ($flag === FormInterface::VALUES_RAW) {
        return $filter->getRawValues();
    }

    return $filter->getValues();