预填充textarea表单生成器symfony

时间:2018-03-17 20:23:24

标签: php symfony

我希望prefill textarea字段包含来自控制器的内容。如果我这样做是可行的:

<textarea name="parameters"
          class="form-control"
          id="parameters"
          rows="{{ size }}"
          disabled>
        {% for i in contents %}
            {{ i }}
        {% endfor %}
</textarea>

但我不知道如何处理:

$form = $this->createFormBuilder()
        ->add('textarea', TextareaType::class,[
            'data' => // $contents (it's an array)

我不使用实体,$ contents是一个数组填充:

    file = fopen($newFile, "r+");
    $contents = [] ;
    while (($content = fgets($file)) !== false) {
        array_push($contents, $content);
    }
   fclose($file);

任何想法都会交配? TY:D

2 个答案:

答案 0 :(得分:0)

我认为问题在于de data是一个数组而Symfony无法将其转换为字符串。你可以试试这个:

$form = $this->createFormBuilder()->add(
   'textarea', 
   TextareaType::class, 
   [
     'data' => implode(' ' , $content)
   ]

我希望这可以帮到你

答案 1 :(得分:0)

感谢您的回答 JoseM.González,我稍后会尝试您的方法,因为在此期间我自己创建了一个解决方案啊!

看:

$file = fopen($newFile, "r+");
$contents = fread($file, filesize($newFile));


$form = $this->createFormBuilder()
        ->add('textarea', TextareaType::class, [
            'data' => $contents,
            'attr' => ['rows' => 100],
        ])

使用数组是一个坏主意,它更容易:)