bupy7 / yii2-dynamic-fields

该软件包已被废弃,不再维护。未建议替代软件包。

用于显示动态字段、添加和删除它们使用的 Pjax 小部件。

安装数 6,228

依赖项: 0

建议者: 0

安全性: 0

星标: 54

关注者: 12

分支: 17

开放问题: 2

类型:yii2-extension

1.0.2 2018-03-26 05:36 UTC

This package is auto-updated.

Last update: 2021-04-11 06:54:29 UTC


README

用于显示动态字段、添加和删除它们使用的 Pjax 小部件。

Screenshot

安装

安装此扩展的首选方式是通过 Composer

运行以下命令之一

php composer.phar require --prefer-dist bupy7/yii2-dynamic-fields "*"

"bupy7/yii2-dynamic-fields": "*"

将以下内容添加到您的 composer.json 文件的 require 部分。

用法

将以下代码添加到您的视图中

use yii\helpers\Html;
use yii\widgets\ActiveForm;
use bupy7\dynafields\DynaFields;

$form = ActiveForm::begin(['action' => ['index']]);

echo DynaFields::widget([
    'urlAdd' => ['your-action-add'],
    'urlRemove' => ['your-action-remove'],
    'inputMethod' => 'textInput',
    'inputMethodArgs' => [['maxlength' => true]],
    'form' => $form,
    'models' => $models,
    'attribute' => 'attribute',
]);

echo Html::submitButton('Save', ['class' => 'btn btn-success']);

ActiveForm::end();

将以下代码添加到您的控制器中

use Yii;
use yii\base\Model;

/**
 * Render form.
 */
public function actionIndex() 
{
    $models = ModelName::find()->all();
    if (Model::loadMultiple($models, Yii::$app->request->post()) && Model::validateMultiple($models)) {
        for ($i = 0; $i != count($models); $i++) {
            $models[$i]->save(false);
        }
        return $this->redirect(['index']);
    }
    return $this->render('index', ['models' => $models]); 
}

/**
 * Create new model.
 */
public function actionYourActionAdd()
{ 
    $model = new ModelName;
    $model->save(false);
    return $this->actionIndex();
}

/**
 * Delete model.
 * @param int $id
 */
public function actionYourActionRemove($id)
{
    ModelName::findOne($id)->delete();
    return $this->actionIndex();
}

##许可证

yii2-dynamic-fields 在 BSD 3-Clause 许可证下发布。