inspire-agency / yii2-ajax-new
This widget allows you to easily create a new related entity from within a form in Yii, in a bootstrap Modal view.
Installs: 38
Dependents: 0
Suggesters: 0
Security: 0
Stars: 3
Watchers: 6
Forks: 3
Open Issues: 0
Type:yii2-extension
Requires
This package is auto-updated.
Last update: 2024-10-16 02:56:46 UTC
README
This widget allow you to easily create a new related entity instance from within a form in Yii, in a bootstrap Modal view.
Let's suppose for instance that you have an Article model with a manyToOne relation with a Category model (article.category_id = category.id)
When creating a new Article, you realize that you didn't create the target Category yet. You would normally cancel the Article creation, create the Category, and then go back to the Article creation.
yii2-ajax-new will allow you to avoid that hassle by creating the new Category right away from the Article form.
A complete sample if provided below.
Installation
The preferred way to install this extension is through composer.
Either run
php composer.phar require inspire-agency/yii2-ajax-new "*"
or add
"inspire-agency/yii2-ajax-new": "*"
to the require section of your composer.json
file.
Configuration
Assuming you have created both Article and Category models with the relation Article.category_id = Category.id, you will need to:
- Configure your CategoryController as follows:
public function actions() { return [ 'ajaxNew' => [ 'class' => '\inspire\action\AjaxNewAction', 'viewFile' => '_form', 'model' => new Category(), 'attr_id' => 'id', 'attr_label' => 'label', ] ]; }
- Add the AjaxNew widget in your article/_form view:
$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}",