Коде с Yii2: как добавить textarea в коде с Yii2
что такое отображение textarea в yii2 ? Как написать это в формате yii2?
<textarea name="downloadSourceCode" id="downloadSourceCode"></textarea>
что такое альтернатива или способ определения textarea в yii2?
21 ответов
Вы можете использовать активные формы для создания таких полей, как
<?php $form = ActiveForm::begin(['id' => 'downloadSourceCode']); ?>
<?= $form->field($model, 'description')->textarea(['rows' => '6']) ?>
<?= Html::submitButton('Submit') ?>
<?php ActiveForm::end(); ?>
в Примере previouse вы создаете форму с textarea внутри, вы можете дать ей имя и передать модель от контроллера, чтобы показать существующее содержимое модели, если вы редактируете его, если вы создаете новую модель, вам нужно будет создать новый объект, а затем передать его в представление.
код текстовой области в yii2 может быть создан многими способами, это зависит от того, что вам нужно именно
Ситуация 1 у вас есть модель
скажите текстовую область, подключенную к этой модели в активной форме
<?php $form = ActiveForm::begin(); ?>
<?= $form->field($model, 'election_description')->textArea() ?>
<?php ActiveForm::end(); ?>
генерируемый код будет
<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>
как вы можете видеть, метка и блок ошибок генерируются вместе с кодом textarea по умолчанию, так как это может быть полезно в практических сценариях .Итак, что я написал? выше будет интерпретироваться как
<?php $form = ActiveForm::begin(); ?>
<?= $form->field($model, 'election_description',['template'=> "{label}\n{input}\n{hint}\n{error}"])->textArea() ?>
<?php ActiveForm::end(); ?>
измените или удалите метку, просто сделав
<?= $form->field($model, 'election_description')->textArea()->label(false) ?>
<?= $form->field($model, 'election_description')->textArea()->label("Some Label") ?>
или более продвинутая настройка может быть выполнена путем изменения шаблона,
" {label}\n{input}\n{hint}\n{error}"
является шаблоном по умолчанию .Однако шаблон настраивается, если вы просто хотите, чтобы текстовая область только переопределяла шаблон генерации кода для текстовой области как
" {input}"
<?= $form->field($model, 'election_description',['template'=> "{input}"])->textArea() ?>
генерируемый код будет
<div class="form-group field-election-election_description">
<textarea id="election-election_description" class="form-control" name="Election[election_description]"></textarea>
</div>
div, обертывающий текст, может быть удален путем изменения шаблона активной формы или с помощью другой функции activeTextInput
<?= Html::activeTextInput($model, 'election_description'); ?>
генерируемый код будет
<textarea id="election-election_description" name="Election[election_description]"></textarea>
Ситуация 2 у вас нет Модель
если у нас нет модели и просто хотите создать точный код, как просили, лучшим способом будет использовать Html:: textarea
следующий формат
textarea ($name, $value = ", $options = [] )
обратитесь к этому примеру
<?php use yii\helpers\Html;?>
<?= Html::textArea('downloadSourceCode',"",['id'=>'downloadSourceCode']); ?>
который будет генерировать код
<textarea id="downloadSourceCode" name="downloadSourceCode"></textarea>
надеюсь, это поможет
см. По ссылкам для более info
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
вы можете сделать это так:
<?php $form = ActiveForm::begin(['id' => 'my-form']); ?>
<?= $form->field($model, 'field_name')->textArea(['rows' => '6']) ?>
<?= Html::submitButton('Submit') ?>
<?php ActiveForm::end(); ?>
используйте Textarea в шаблоне
<?= $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.'); ?>
вы можете использовать ниже код
<?= $form->field($model, 'desc')->textarea(); ?>
или
<?= $form->field($model, 'desc')->textarea()->label('Description'); ?>
или
<?= $form->field($model, 'desc')->textarea(array('rows'=>2,'cols'=>5)); ?>
на более подробная информация о поле формы.
Если вы сопоставляете с моделью, то следующий код должен быть в порядке для вас:
<?= $form->field($model, 'downloadSourceCode')->textarea() ?>
<?= $form->field($model, 'field_name')->textArea(['maxlength' => 300, 'rows' => 6, 'cols' => 50,'placeholder'=>'Enter Message Here.....']) ?>
такой:
<?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(); ?>
Это так просто. Просто напишите это так в своем ActiveForm:: begin.
<?= $form->field($model, 'downloadSourceCode')->textarea(['maxlength' => 1000]) ?>
и вы можете получить текстовую область.
Если вы хотите textarea без указания какой-либо модели, используйте:
<?= \yii\helpers\Html::textarea('name_attribute_value') ?>
результат должен выглядеть так:
<textarea id="id_attribute_value" name="name_attribute_value"></textarea>
Это просто. Просто такой
<?= $form->field($model, 'notes')->textarea(); ?>
<?= $form->field($model, 'notes')->textarea()->label('Notes'); ?>
<?= $form->field($model, 'notes')->textarea(['rows'=>2,'cols'=>5]); ?>
это может помочь вам
текст
<?= $form->field($model, 'desc')->textarea(['rows'=>2,'cols'=>5,'id'=>'textarea_id','class'=>'form-control textarea_class']); ?>
<?= $form->field($model, 'desc')->textarea()->label('Description'); ?>
текст
<?= $form->field($model,'name'); ?>
<?= $form->field($model, 'name')->textInput()->hint('Please enter your name')->label('Name') ?>
пароль
<?= $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') ?>
<?= $form->field($model, 'uploadFile')->fileInput() ?>
<?php echo $form->field($model, 'uploadFile[]')->fileInput(['multiple'=>'multiple']); ?>
Радио
<?= $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')); ?>
список
<?= $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'); ?>
вот так.
<?php $form = ActiveForm::begin(); ?>
<?= $form->field($model, 'downloadSourceCode')->textArea(['maxlength' => true]) ?>
<?php ActiveForm::end(); ?>
<?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**
Шаг 1 : в файле представления не забудьте добавить класс ActiveForm используйте yii\bootstrap\ActiveForm;
Шаг 2: Теперь добавьте текстовую область, как показано ниже в представлении
поле ($model, 'body') - >textarea(['rows' => 6])?>существует альтернативное расширение с именем kartik-V widget:
use kartik\widgets\ActiveForm;
echo ActiveForm::begin();
echo $form->field($model, 'username');
просто установите с composer
<?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, 'user')->textArea(['rows' => 6]) ?>
Без Модели:
<?= Html::textarea('sourceCode',null,['rows'=>6]) ?>