27

yii2中textarea的映射是什么?这个怎么写成yii2格式?

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

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

4

25 回答 25

87

您可以使用 Active Forms 创建字段textarea,例如

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

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

于 2015-01-14T15:07:55.287 回答
12

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") ?>

或者更高级的定制可以通过修改模板来完成,

"{标签}\n{输入}\n{提示}\n{错误}"

是默认模板。但是模板是可定制的,如果你只想要文本区域只覆盖文本区域的代码生成模板为

{输入}”

因此

<?= $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>

可以通过修改活动表单的模板或使用另一个函数activeTextInput来删除包含文本字段的 Div

<?= Html::activeTextInput($model, 'election_description'); ?>

生成的代码将是

<textarea id="election-election_description" name="Election[election_description]"></textarea>

情况 2 你没有模特

如果我们没有模型并且只想按照要求创建确切的代码,最好的方法是使用Html::textarea

遵循这种格式

文本区域 ($name, $value = '', $options = [])

参考这个例子

<?php use yii\helpers\Html;?>
<?= Html::textArea('downloadSourceCode',"",['id'=>'downloadSourceCode']); ?>

这将生成一个代码

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

希望这可以帮助

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

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

于 2016-04-03T07:09:35.263 回答
3

你可以这样做:

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

<?= $form->field($model, 'field_name')->textArea(['rows' => '6']) ?>
<?= Html::submitButton('Submit') ?>
<?php ActiveForm::end(); ?>
于 2015-02-16T13:05:49.577 回答
3

在模板中使用 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.'); ?>
于 2016-11-08T14:51:37.130 回答
2

您可以使用以下代码

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

或者

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

或者

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

有关表单字段的更多详细信息。

于 2015-05-21T09:36:23.593 回答
1

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

<?= $form->field($model, 'downloadSourceCode')->textarea() ?>
于 2015-05-16T04:40:50.963 回答
1
<?= $form->field($model, 'field_name')->textArea(['maxlength' => 300, 'rows' => 6, 'cols' => 50,'placeholder'=>'Enter Message Here.....']) ?>
于 2017-03-20T17:37:10.863 回答
1

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

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()) ?>
于 2019-11-25T04:58:03.670 回答
0

像这样:

<?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(); ?>
于 2015-01-24T09:55:53.967 回答
0

就是这么简单。只需在您的ActiveForm::begin中这样写。

<?= $form->field($model, 'downloadSourceCode')->textarea(['maxlength' => 1000]) ?>

你可以得到你的文本区域。

于 2015-04-07T10:27:46.590 回答
0

如果您想要 textarea 而不指定任何模型,请使用:

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

输出将是:

<textarea id="id_attribute_value" name="name_attribute_value"></textarea>
于 2015-05-08T08:43:42.053 回答
0

这很简单。像这样

<?= $form->field($model, 'notes')->textarea(); ?>
<?= $form->field($model, 'notes')->textarea()->label('Notes'); ?>
<?= $form->field($model, 'notes')->textarea(['rows'=>2,'cols'=>5]); ?>
于 2016-03-05T04:25:35.823 回答
0

这可以帮助你

文本区

<?= $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'); ?>
于 2017-01-16T05:12:42.700 回答
0

就像这样。

    <?php $form = ActiveForm::begin(); ?>
    <?= $form->field($model, 'downloadSourceCode')->textArea(['maxlength' =>     true]) ?>
    <?php ActiveForm::end(); ?>
于 2017-03-18T14:58:18.667 回答
0
<?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**
于 2017-04-07T17:49:42.897 回答
0

第 1 步:在您的视图文件中不要忘记添加 ActiveForm 类使用 yii\bootstrap\ActiveForm;

第 2 步:现在在视图中添加如下文本区域

字段($model,'body')->textarea(['rows' => 6])?>
于 2017-05-12T11:52:03.937 回答
0
<?= $form->field($model, 'description')->textarea(['rows' => '2']) ?>
于 2017-10-11T12:19:34.087 回答
0

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

<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>
于 2019-02-05T05:17:58.853 回答
0
 <?php $form = ActiveForm::begin(); ?>
 <?= $form->field($model, 'description')->textarea(['rows' => '5']) ?>
 <?= Html::submitButton('Save', ['class' => 'btn btn-success']) ?>
 <?php ActiveForm::end(); ?>

此行用于 textarea

 <?= $form->field($model, 'description')->textarea(['rows' => '5']) ?>
于 2019-07-02T09:07:21.000 回答
0

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

$form->field($model, 'fieldName')->textarea(array('rows'=>2,'cols'=>5));
于 2020-12-22T06:43:26.597 回答
-1

我不太确定,但是带有选项 attr 的activeTextarea()很好

于 2015-01-14T14:41:17.247 回答
-1

有一个名为 kartik-v 小部件的替代扩展:

use kartik\widgets\ActiveForm;
echo ActiveForm::begin();
echo $form->field($model, 'username');

只需使用作曲家安装

于 2016-05-01T17:00:05.750 回答
-1
 <?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(); ?>
于 2016-07-28T13:21:38.423 回答
-1

带型号:

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

无型号:

<?= Html::textarea('sourceCode',null,['rows'=>6]) ?>
于 2017-09-26T10:37:29.877 回答
-2

它有 2 种可能性。现在这样做: field($model, 'user')->textArea(['rows' => 6]) ?>

于 2017-12-25T06:57:21.077 回答