inspire-agency/yii2-ajax-new

此小部件允许您在Yii中,在bootstrap Modal视图中轻松从表单中创建新的相关实体。

安装: 38

依赖: 0

建议者: 0

安全: 0

星标: 3

关注者: 6

分支: 3

开放问题: 0

类型:yii2-extension

dev-master 2015-02-11 14:09 UTC

This package is auto-updated.

Last update: 2024-09-16 02:48:00 UTC


README

此小部件允许您在Yii中,在bootstrap Modal视图中轻松从表单中创建新的相关实体实例。

假设您有一个Article模型,它与Category模型有一个多对一的关系(article.category_id = category.id)

当您创建一个新的Article时,您意识到还没有创建目标Category。您通常会取消Article的创建,创建Category,然后返回到Article的创建。

yii2-ajax-new将允许您通过在Article表单中立即创建新的Category来避免这种麻烦。

以下提供了一个完整的示例。

安装

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

运行以下命令之一

php composer.phar require inspire-agency/yii2-ajax-new "*"

或者

"inspire-agency/yii2-ajax-new": "*"

将其添加到您的composer.json文件的require部分。

配置

假设您已经创建了Article和Category模型,并且它们之间的关系是Article.category_id = Category.id,您需要

  1. 按照以下方式配置您的CategoryController
    public function actions()
    {
        return [
            'ajaxNew' => [
                'class'      => '\inspire\action\AjaxNewAction',
                'viewFile'   => '_form',
                'model'      => new Category(),
                'attr_id'    => 'id',
                'attr_label' => 'label',
            ]
        ];
    }
  1. 在article/_form视图中添加AjaxNew小部件
$newCategory = AjaxNew::widget([
    'url' => Url::toRoute(['/category/ajaxNew']),
    'header' => '<strong>' . Yii::t('app', 'Create new category') . '</strong>',
    'selector' => '#article-category',
]);

// ...

<?= $form->field($model, 'category', [
'template' => "{label} " . $newCategory . " \n{input}\n{hint}\n{error}",