Yii2:如何在Yii2中添加textarea

Yii2:如何在Yii2中添加textarea,yii2,yii2-advanced-app,yii2-basic-app,Yii2,Yii2 Advanced App,Yii2 Basic App,yii2中textarea的映射是什么? 如何以yii2格式编写 <textarea name="downloadSourceCode" id="downloadSourceCode"></textarea> 在yii2中定义textarea的替代方法是什么?我不太确定,但使用选项attr is nice您可以使用活动表单创建字段,例如textarea <?php $form = ActiveForm::begin(['id' => 'download

yii2中textarea的映射是什么? 如何以yii2格式编写

<textarea  name="downloadSourceCode" id="downloadSourceCode"></textarea>


在yii2中定义textarea的替代方法是什么?

我不太确定,但使用选项attr is nice

您可以使用活动表单创建字段,例如
textarea

<?php $form = ActiveForm::begin(['id' => 'downloadSourceCode']); ?>
<?= $form->field($model, 'description')->textarea(['rows' => '6']) ?>
<?= Html::submitButton('Submit') ?>
<?php ActiveForm::end(); ?>

在上一个示例中,您正在创建一个包含文本区域的表单,如果您正在编辑它,您可以给它一个名称并从控制器传递模型以显示模型的现有内容。如果您正在创建一个新模型,您将需要创建一个新对象,然后将其传递给视图。

如下所示:

<?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(); ?>

您可以这样做:

<?php $form = ActiveForm::begin(['id' => 'my-form']); ?>

<?= $form->field($model, 'field_name')->textArea(['rows' => '6']) ?>
<?= Html::submitButton('Submit') ?>
<?php ActiveForm::end(); ?>

这太简单了。只需在ActiveForm::begin中这样编写即可



您可以获得文本区域。

如果您想要文本区域而不指定任何型号,请使用:

<?= \yii\helpers\Html::textarea('name_attribute_value') ?>

输出将是:

<textarea id="id_attribute_value" name="name_attribute_value"></textarea>

如果您使用模型进行映射,则以下代码应该适合您:

<?= $form->field($model, 'downloadSourceCode')->textarea() ?>

您可以使用以下代码

<?= $form->field($model, 'desc')->textarea(); ?>




关于表单字段。

很简单。就这样

<?= $form->field($model, 'notes')->textarea(); ?>
<?= $form->field($model, 'notes')->textarea()->label('Notes'); ?>
<?= $form->field($model, 'notes')->textarea(['rows'=>2,'cols'=>5]); ?>

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>
<div class="form-group field-election-election_description">
    <textarea id="election-election_description" class="form-control" name="Election[election_description]"></textarea>
</div>
<textarea id="election-election_description" name="Election[election_description]"></textarea>

描述
正如您所看到的,默认情况下,标签和错误块是和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}”

因此


生成的代码将是

<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>
<div class="form-group field-election-election_description">
    <textarea id="election-election_description" class="form-control" name="Election[election_description]"></textarea>
</div>
<textarea id="election-election_description" name="Election[election_description]"></textarea>

通过修改活动表单的模板或使用另一个函数activeTextInput

<?= Html::activeTextInput($model, 'election_description'); ?>
<?= $form->field($model,'name'); ?>
<?= $form->field($model, 'name')->textInput()->hint('Please enter your name')->label('Name') ?>

生成的代码将是

<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>
<div class="form-group field-election-election_description">
    <textarea id="election-election_description" class="form-control" name="Election[election_description]"></textarea>
</div>
<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>

希望这有帮助

有关更多信息,请参阅这些链接


有一个名为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, '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(['rows'=>2,'cols'=>5,'id'=>'textarea_id','class'=>'form-control textarea_class']); ?>
<?= $form->field($model, 'desc')->textarea()->label('Description'); ?>
<?= $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'); ?>

文本

<?= Html::activeTextInput($model, 'election_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, 'desc')->textarea(['rows'=>2,'cols'=>5,'id'=>'textarea_id','class'=>'form-control textarea_class']); ?>
<?= $form->field($model, 'desc')->textarea()->label('Description'); ?>
<?= $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(); ?>



**您还可以添加Tinymce小部件而不是文本区域**
**名称空间:使用dosamigos\tinymce\tinymce;
参考:https://github.com/2amigos/yii2-tinymce-widget**

步骤1:在视图文件中,不要忘记添加ActiveForm类 使用yii\bootstrap\ActiveForm

步骤2:现在在视图中添加文本区域,如下所示

字段($model,'body')->textarea(['rows'=>6])?>带模型:

<?= $form->field($model, 'user')->textArea(['rows' => 6]) ?>

无型号:

<?= Html::textarea('sourceCode',null,['rows'=>6]) ?>


它有两种可能。目前,请执行以下操作:
字段($model,'user')->textArea(['rows'=>6])?>

此代码添加到视图文件中:

<div class="col-md-12 mb-10">
                        <label class="control-label" for="cancellesson-cancel_note">Cancel Note</label>
                        <textarea id="cancellesson_cancel_note" class="form-control" name="cancellesson[cancel_note]" placeholder="Enter Cancel Note" aria-required="true"></textarea>
</div>

取消通知

这一行是文本区

 <?= $form->field($model, 'description')->textarea(['rows' => '5']) ?>

您可以在控制台上运行以下命令

php composer.phar require --prefer-dist yiidoc/yii2-redactor "*" 
or 
"yiidoc/yii2-redactor": "*"

for instaling Redactor see https://github.com/yiidoc/yii2-redactor
然后您可以在代码中检查以下行

 <?= $form->field($model, 'address')->widget(\yii\redactor\widgets\Redactor::className()) ?>

借助Yii2活动表单,我们可以在表单中创建textarea字段

$form->field($model, 'fieldName')->textarea(array('rows'=>2,'cols'=>5));

您可以将其添加到选项数组:“id”=>“downloadSourceCode”您的答案与其他答案不同?它没有区别。我只是简单地点对点地回答了这个问题。你的答案与其他人有什么不同?你的答案与其他人有什么不同?如果您有这样的问题,您应该重新阅读手册更多次。通过使用['maxlength'=>300'],我们可以为textarea设置maxlength,还可以使用['rows'=>6,'cols'=>50]和['placehoder'=>“我们可以设置自定义消息”]来控制textarea的宽度和高度,并使用['placehoder'=>“我们可以设置自定义消息”]为您的答案添加一些解释太多硬编码的HTML。尽量不要在实际项目中使用这种编码。如果您在Yii2项目中需要自定义HTML(例如,您使用的不是引导样式),您应该编写自己的小部件并使用它。