form - Yii2: Cómo agregar textarea en yii2
textarea yii2 (21)
¿Cuál es el mapeo de textarea en yii2? ¿Cómo escribir esto en formato yii2?
<textarea name="downloadSourceCode" id="downloadSourceCode"></textarea>
¿Cuál es una alternativa o manera de definir textarea en yii2?
Con Modelo:
<?= $form->field($model, ''user'')->textArea([''rows'' => 6]) ?>
Sin modelo:
<?= Html::textarea(''sourceCode'',null,[''rows''=>6]) ?>
El código de área de texto en yii2 se puede crear de muchas maneras. Depende de lo que necesite exactamente
Situación 1 Tienes un modelo
decir el área de texto conectada a ese modelo en una forma activa
<?php $form = ActiveForm::begin(); ?>
<?= $form->field($model, ''election_description'')->textArea() ?>
<?php ActiveForm::end(); ?>
El código generado será
<div class="form-group field-election-election_description">
<label class="control-label" for="election-election_description">Description</label>
<textarea id="election-election_description" class="form-control" name="Election[election_description]"></textarea>
<div class="help-block"></div>
</div>
Como puede ver, la etiqueta y el bloque de error se generan junto con el código de área de texto de forma predeterminada, ya que esto podría ser útil en escenarios prácticos. Así que lo que he escrito anteriormente se interpretará como
<?php $form = ActiveForm::begin(); ?>
<?= $form->field($model, ''election_description'',[''template''=> "{label}/n{input}/n{hint}/n{error}"])->textArea() ?>
<?php ActiveForm::end(); ?>
Cambie o elimine la etiqueta simplemente haciendo
<?= $form->field($model, ''election_description'')->textArea()->label(false) ?>
<?= $form->field($model, ''election_description'')->textArea()->label("Some Label") ?>
O se podría hacer una personalización más avanzada modificando la plantilla,
"{label} / n {input} / n {hint} / n {error}"
es la plantilla predeterminada. Sin embargo, la plantilla es personalizable, si solo desea que el área de texto solo reemplace la plantilla de generación de código para el área de texto como
" {input}"
así
<?= $form->field($model, ''election_description'',[''template''=> "{input}"])->textArea() ?>
El código generado será
<div class="form-group field-election-election_description">
<textarea id="election-election_description" class="form-control" name="Election[election_description]"></textarea>
</div>
La División que envuelve el texto archivado podría eliminarse modificando la plantilla del formulario activo o utilizando otra función activeTextInput
<?= Html::activeTextInput($model, ''election_description''); ?>
El código generado será
<textarea id="election-election_description" name="Election[election_description]"></textarea>
Situación 2 No tienes modelo
Si no tenemos un modelo y solo queremos crear el código exacto como se le pide, la mejor manera será usar Html :: textarea
sigue este formato
área de texto ($ nombre, $ valor = '''', $ opciones = [])
Consulte este ejemplo
<?php use yii/helpers/Html;?>
<?= Html::textArea(''downloadSourceCode'',"",[''id''=>''downloadSourceCode'']); ?>
Que generará un código.
<textarea id="downloadSourceCode" name="downloadSourceCode"></textarea>
Espero que esto ayude
Consulte estos enlaces para más información.
http://www.yiiframework.com/doc-2.0/yii-widgets-activefield.html#textarea()-detail
http://www.yiiframework.com/doc-2.0/yii-helpers-basehtml.html#textarea()-detail
http://www.yiiframework.com/doc-2.0/yii-helpers-basehtml.html#activeTextarea()-detail
Es como esto.
<?php $form = ActiveForm::begin(); ?>
<?= $form->field($model, ''downloadSourceCode'')->textArea([''maxlength'' => true]) ?>
<?php ActiveForm::end(); ?>
Es sencillo. Como esta
<?= $form->field($model, ''notes'')->textarea(); ?>
<?= $form->field($model, ''notes'')->textarea()->label(''Notes''); ?>
<?= $form->field($model, ''notes'')->textarea([''rows''=>2,''cols''=>5]); ?>
Es tan simple. Solo escríbelo así en tu ActiveForm :: begin .
<?= $form->field($model, ''downloadSourceCode'')->textarea([''maxlength'' => 1000]) ?>
y usted puede obtener su área de texto.
Esto te puede ayudar
Area de texto
<?= $form->field($model, ''desc'')->textarea([''rows''=>2,''cols''=>5,''id''=>''textarea_id'',''class''=>''form-control textarea_class'']); ?>
<?= $form->field($model, ''desc'')->textarea()->label(''Description''); ?>
Texto
<?= $form->field($model,''name''); ?>
<?= $form->field($model, ''name'')->textInput()->hint(''Please enter your name'')->label(''Name'') ?>
Contraseña
<?= $form->field($model, ''password'')->input(''password'') ?>
<?= $form->field($model, ''password'')->passwordInput() ?>
<?= $form->field($model, ''password'')->passwordInput()->hint(''Password should be within A-Za-z0-9'')->label(''Password Hint'') ?>
Archivo
<?= $form->field($model, ''uploadFile'')->fileInput() ?>
<?php echo $form->field($model, ''uploadFile[]'')->fileInput([''multiple''=>''multiple'']); ?>
Radio
<?= $form->field($model, ''gender'') ->radio(array(''label''=>''''))
->label(''Gender''); ?>
<?= $form->field($model, ''gender'')->radio(array(
''label''=>'''',
''labelOptions''=>array(''style''=>''padding:5px;'')))
->label(''Gender''); ?>
<?= $form->field($model, ''population'')->radioList(array(''1''=>''One'',2=>''Two'')); ?>
Lista
<?= $form->field($model, ''population'')-> listBox(
array(''1''=>''1'',2=>''2'',3=>3,4=>4,5=>5),
array(''prompt''=>''Select'',''size''=>3)
); ?>
<?= $form->field($model, ''population'')-> listBox(
array(''1''=>''1'',2=>''2'',3=>3,4=>4,5=>5),
array(''disabled'' => true,''style''=>''background:gray;color:#fff;''))
->label(''Gender''); ?>
Me gusta esto:
<?php $form = ActiveForm::begin(); ?>
<?= $form->field($model, ''die_geschichte'')->textArea(array(''rows''=>25, ''cols''=>50, ''readonly'' => true, ''name''=>''xyz; )) ?>
<div class="form-group">
<?= Html::submitButton(''Unangemessenen Inhalt melden'', [''class'' => ''btn btn-primary'']) ?>
</div>
<?php ActiveForm::end(); ?>
No estoy muy seguro, pero http://www.yiiframework.com/doc-2.0/yii-helpers-basehtml.html#activeTextarea()-detail con la opción attr es agradable
Paso 1: en su archivo de vista no se olvidó de agregar ActiveForm Class use yii / bootstrap / ActiveForm;
Paso 2: ahora agregue el área de texto como se muestra abajo en la vista
campo ($ modelo, ''cuerpo'') -> área de texto ([''filas'' => 6])?>Puedes hacer esto como:
<?php $form = ActiveForm::begin([''id'' => ''my-form'']); ?>
<?= $form->field($model, ''field_name'')->textArea([''rows'' => ''6'']) ?>
<?= Html::submitButton(''Submit'') ?>
<?php ActiveForm::end(); ?>
Puedes usar Active Forms para crear campos como textarea
por ejemplo
<?php $form = ActiveForm::begin([''id'' => ''downloadSourceCode'']); ?>
<?= $form->field($model, ''description'')->textarea([''rows'' => ''6'']) ?>
<?= Html::submitButton(''Submit'') ?>
<?php ActiveForm::end(); ?>
En el ejemplo anterior, está creando un formulario con un área de texto dentro, puede darle un nombre y pasar el modelo desde el controlador para mostrar el contenido existente del modelo si lo está editando, si está creando un nuevo modelo, Tendrá que crear un nuevo objeto y luego pasarlo a la vista.
Puedes usar el siguiente código
<?= $form->field($model, ''desc'')->textarea(); ?>
O
<?= $form->field($model, ''desc'')->textarea()->label(''Description''); ?>
O
<?= $form->field($model, ''desc'')->textarea(array(''rows''=>2,''cols''=>5)); ?>
Para más detalles sobre el campo de formulario.
Si mapea con el modelo, el siguiente código debería estar bien para usted:
<?= $form->field($model, ''downloadSourceCode'')->textarea() ?>
Si quieres textarea sin especificar ningún modelo, usa:
<?= /yii/helpers/Html::textarea(''name_attribute_value'') ?>
La salida será:
<textarea id="id_attribute_value" name="name_attribute_value"></textarea>
Tiene 2 posibilidades. Por ahora haz esto: campo ($ modelo, ''usuario'') -> textArea ([''rows'' => 6])?>
Usa Textarea en plantilla
<?= $form->field($model, ''columnName'',
[''template'' => ''
{label}
<div class="input-group">
<span class="input-group-addon">
<i class="fa fa-newspaper-o"></i>
</span>
{input}
</div>
{error}{hint}''])->textarea([''rows'' => 6])->hint(''Max 255 characters.''); ?>
hay una extensión alternativa llamada kartik-v widget:
use kartik/widgets/ActiveForm;
echo ActiveForm::begin();
echo $form->field($model, ''username'');
solo instálalo con el compositor
<?php $form = ActiveForm::begin(); ?>
<?= $form->field($model, ''description'')->textarea([''rows'' => 6]) ?>
<?= Html::submitButton($model->isNewRecord ? ''Create'' : ''Update'', [''class'' => $model->isNewRecord ? ''btn btn-success'' : ''btn btn-primary'']) ?>
<?php $form = ActiveForm::end(); ?>
<?= $form->field($model, ''description'')->textarea([''rows'' => ''2'']) ?>
<?= $form->field($model, ''field_name'')->textArea([''maxlength'' => 300, ''rows'' => 6, ''cols'' => 50,''placeholder''=>''Enter Message Here.....'']) ?>
<?php $form = ActiveForm::begin(); ?>
<?= $form->field($model, ''descrip'', [''options'' => [''class'' => ''custom-class'']])->textArea([''maxlength'' => true, ''placeholder''=>''Invoice Address'', "class"=>''form-control'']) ?>
<?php $form = ActiveForm::end(); ?>
**You can Also add Tinymce widget instead of text area.**
<?= $form->field($model, ''club_description'')->widget(TinyMce::className(), [
''options'' => [''rows'' => 4],
//''language'' => ''EN'',
''clientOptions'' => [
''plugins'' => [
"advlist autolink lists link charmap print preview anchor",
"searchreplace visualblocks code fullscreen",
"insertdatetime media table contextmenu paste"
],
''toolbar'' => "undo redo | styleselect | bold italic | alignleft aligncenter alignright alignjustify | bullist numlist outdent indent | link image"
]
]);?>
**Namespace: use dosamigos/tinymce/TinyMce;
Reference: https://github.com/2amigos/yii2-tinymce-widget**