prokhonenkov / yii2-repeater
HTML重复器
1.0
2019-10-06 12:13 UTC
Requires
- php: >=7.1
- yiisoft/yii2: ~2.0.0
This package is auto-updated.
Last update: 2024-09-06 23:57:05 UTC
README
您可以使用此扩展来复制表单的内容以及其他内容
安装
安装此扩展的首选方法是通过composer。
运行以下命令之一:
php composer.phar require prokhonenkov/yii2-repeater
或
"prokhonenkov/yii2-repeater": "*"
将以下内容添加到您的composer.json
文件的require部分。
配置
将模块声明添加到您的web配置文件中
<?php return [ // ... your config 'modules' => [ 'repeater'=> [ 'class' => \prokhonenkov\repeater\Repeater::class ], ], 'bootstrap' => [ 'repeater' // add module id to bootstrap for proper aliases and url routes binding ]
使用方法
示例视图
<?= \prokhonenkov\repeater\widgets\RepeaterWidget::widget([ 'className' => \app\models\TestRepeater::class, 'modelView' => '@app/views/site/repeater', 'models' => [ //list of your models new \app\models\TestRepeater(), ], 'btnNewTitle' => 'Add main container', 'addCallback' => new \yii\web\JsExpression(" function(data){ console.log(data); } "), 'removeCallback' => new \yii\web\JsExpression(" function(data){ console.log(data); } ") ]);?>
示例模型
<?php class TestRepeater extends Model { public $title; public $text; public function rules() { return [ [['date', 'text'], 'safe'] ]; } } ?>
模型示例视图
<?php /** @var \app\models\TestRepeater $model */ /** @var int $id */ ?> <table border="1" width="100%"> <tbody> <tr> <td> <div class="form-group field-posts-title required has-success"> <?= \yii\helpers\Html::activeTextInput($model, "title[$id]")?> </div> <?= CKEditor::widget([ 'name' => "TestRepeater[text][$id]", 'id' => 'cke' . $id, 'options' => ['rows' => 3], 'preset' => 'basic' ])?> </td> </tr> <tr> <td> <?= \prokhonenkov\repeater\widgets\RepeaterWidget::widget([ 'className' => \app\models\TestRepeaterTwo::class, 'modelView' => '@app/views/site/repeaterTwo', 'models' => [ new \app\models\TestRepeaterTwo(), ], 'additionalData' => [ 'container' => "[two][$id]", 'parentId' => $id ], 'btnNewTitle' => 'Add second container', 'addCallback' => new \yii\web\JsExpression(" function(data){ console.log(data); } "), 'removeCallback' => new \yii\web\JsExpression(" function(data){ console.log(data); } ") ]);?> </td> </tr> </tbody> </table>