我正在尝试使用CraueFormFlowBundle以多步骤形式上传文件。
一切正常,但在流程结束时,我的实体从未像以前那样使用文件路径更新
这基本上是我想要做的:
// FormType
public function buildForm(FormBuilder $builder, array $options) {
switch ($options['flowStep']) {
case 1:
$builder->add('username', 'text', array('label'=>'Votre pseudo','required'=>false))
->add('file','file', array('label'=>'Photo de profil','required'=>false));
break;
// ....
虽然我的实体是这样设置的:
/**
* Ray\CentralBundle\Entity\Client
*
* @ORM\Table(name="clients")
* @ORM\Entity(repositoryClass="Ray\CentralBundle\Entity\ClientRepository")
* @ORM\HasLifecycleCallbacks
*/
class Client implements UserInterface
{
private $filenameForRemove;
/**
* @var string $username
*
* @ORM\Column(name="username", type="string", length=255)
*/
private $username;
/**
* @var file $file
*
* @Assert\File(maxSize="6000000")
*/
public $file;
// ...
似乎当$flow->saveCurrentStepData();
被调用时,$form['file']
被填充并指向临时文件。
我不明白的是,为什么在下一步中,文件值不会存储在会话中。
我已经扩展了这样的getSessionData()
方法Craue\FormFlowBundle\Form\FormFlow
:
protected function getSessionData() {
var_dump($this->session->get($this->sessionDataKey, array()));
return $this->session->get($this->sessionDataKey, array());
}
正如预期的那样,这给了我除了“文件”之外的所有表单数据......
如何让文件上传与此捆绑包一起使用?