Quiero establecer el valor en un widget de área de texto. Cómo puedo establecer el valor predeterminado para textarea en Symfony 3 para TextType (input type = "text") puedo usar el parámetro value pero para textarea no puedo !!! cómo puedo establecer el valor predeterminado para textarea.
Esta es mi buildForm
public function buildForm(FormBuilderInterface $builder, array $options)
{
$builder
->add('linkdin', TextType::class, array('attr' => array('placeholder' =>
'linkdin','class' => 'form-control width100','value' =>
MainPageType::$content1[0]['linkdin'])))
->add('addres', CKEditorType::class, array('attr' => array('required' =>
'false','name'=>'editor1' ,'id' => 'editor1','class' => 'ckeditor','empty_data'
=> MainPageType::$content1[0]['addres'])))
.
.
3 respuestas
Suponiendo que está utilizando Symfony 3.4, hay bastante buena documentación para eso.
Para resumir, debes usar data
:
$builder->add('token', TextareaType::class, array(
'data' => 'abcdef',
));
Como dicen los documentos:
La opción de datos siempre anula el valor tomado de los datos de dominio (objeto) cuando se procesa. Esto significa que el valor del objeto también se anula cuando el formulario edita un objeto ya persistente, lo que hace que pierda su valor persistente cuando se envía el formulario.
Puede transferir la variable con datos al formType en el controlador de esa manera
$form = $this->createForm(Form::class,$YourData);
Si está utilizando el formulario para guardar un nuevo registro y editar uno existente, es probable que haya encontrado que la opción 'datos' (solución de Alex) es limitada, porque los campos se anulan con los datos predeterminados durante la edición Un registro existente.
Una de las soluciones es establecer los datos predeterminados manualmente en la acción new () en su controlador, pero solo en la llamada GET, no POST.
$form = $this->createForm(MyType::class, $dto);
$form->handleRequest($request);
if($form->isSubmitted()) {
if($form->isValid()) {
// Save data
}
} else {
// Set default value
$form->get('date')->setData(
new\DateTime(’now’)
);
}
Nuevas preguntas
php
PHP es un lenguaje de scripting ampliamente utilizado, dinámico, orientado a objetos e interpretado, diseñado principalmente para el desarrollo web del lado del servidor. Usado para preguntas sobre el lenguaje PHP.