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());
}
これにより、予想どおり、「ファイル」以外のすべてのフォームデータが得られます。
このバンドルでファイルのアップロードを機能させる方法は?