inspire-agency / yii2-ajax-new
此小部件允许您在Yii中,在bootstrap Modal视图中轻松从表单中创建新的相关实体。
dev-master
2015-02-11 14:09 UTC
Requires
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,您需要
- 按照以下方式配置您的CategoryController
public function actions() { return [ 'ajaxNew' => [ 'class' => '\inspire\action\AjaxNewAction', 'viewFile' => '_form', 'model' => new Category(), 'attr_id' => 'id', 'attr_label' => 'label', ] ]; }
- 在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}",