Entradas

Google Chart con Pjax

Imagen
1.- Crear la tabla: CREATE TABLE `yii2_proyecto`.`author_sales` ( `id` INT NOT NULL AUTO_INCREMENT , `author_id` INT NOT NULL , `dateSale` DATE NOT NULL , `quantityBook` INT NOT NULL , PRIMARY KEY (`id`)) ENGINE = InnoDB; ALTER TABLE `author_sales` ADD FOREIGN KEY (`author_id`) REFERENCES `author`(`id`) ON DELETE CASCADE ON UPDATE CASCADE; 2.- Crear Modelo Table Name: author_sales Model Class Name: AuthorSales Namespace: backend\modules\bookstore\models\AuthorSales 3.- En el model añadir el use con la tabla author que está relacionada: use backend\modules\bookstore\models\Author\Author; 4.- Generar el crud: Model Class: backend\modules\bookstore\models\AuthorSales\AuthorSales Search Model Class: backend\modules\bookstore\models\AuthorSales\AuthorSalesSearch Controller Class: backend\modules\bookstore\controllers\AuthorSalesController View Path: @backend/modules/bookstore/views/author-sales 5.- Ingresar valores a la tabla 6.- Añadir en el controlador:     public function action...

Implementación de Google Chart en Yii2 ("scotthuangzl/yii2-google-chart")

Imagen
 1.- Colocar en el archivo de composer.json: "scotthuangzl/yii2-google-chart": "dev-master" 2.- Ejecutar en el archivo de cmd:  composer update --prefer-dist 3.- Colocar en el Controlador: use scotthuangzl\googlechart\GoogleChart; 4.- En el controlador, en el método actionChart que se creó en una entrada anterior:         $dataSale[]= [Yii::t('app', 'Authors'),Yii::t('app', 'Total Sales')];         $modelArray =   Author::find()->orderBy('total_sale DESC')->limit(10)->all();          foreach ($modelArray as $value) {               $dataSale[] = [$value['name'],(double)$value['total_sale']];         }            $chartGoogleSale =  GoogleChart::widget(              array('visualization' => 'ColumnChart',                 'data' =...

Instalación de un Widget de Gráficos (FusionChart)

Imagen
 1.- Adicionar en el composer: "ptrnov/yii2-fusionchart": "*" 2.- Ejecutar en el cmd del proyecto: composer update --prefer-dist 3.- Crear un archivo para la vista con nombre chart.php: <?php use ptrnov\fusionchart\ChartAsset; /* @var $this yii\web\View */ /* @var $searchModel backend\modules\bookstore\models\Author\AuthorSearch */ /* @var $dataProvider yii\data\ActiveDataProvider */ $this->title = Yii::t('app', 'Chart'); $this->params['breadcrumbs'][] = $this->title; ChartAsset::register($this);      ?> <div class="row">     <div class="col-sm-6">         <div class="book-chart">             <?=$chartBook?>         </div>     </div>     <div class="col-sm-6">         <div class="sale-chart">         <?=$chartSale?>         </div> ...

Implementando un formulario tipo Wizard con un formulario Tabular

Imagen
Vamos a estar unificando varios formularios en uno, y además utilizando el formulario tabular de esta extensión:  1.- Instalar widget de formwizard, añadir al composer.json: "buttflattery/yii2-formwizard":"@dev" 1.1.- Ejecutar  en el cmd de la carpeta del proyecto: composer update --prefer-dist 2.- Colocar en el form el use del widget: use buttflattery\formwizard\FormWizard; 3.- Colocar el form: <?= FormWizard::widget(     [         'formOptions' => [             'id' => 'my_form_tabular'                      ],         'theme' => FormWizard::THEME_ARROWS,         'labelNext' => Yii::t('app', 'Next'),         'labelPrev' => Yii::t('app', 'Previous'),         'labelFinish' => Yii::t('app', 'Finish'),                  'ste...

Formulario con Select2 Kartik Múltiple

Imagen
En esta entrada les muestro como modificar el formulario para que podamos ingresar múltiples elementos en el selector y como guardar en el modelo:  1.- Modificar el formulario colocando los selectores:  <?=  $form->field($model, 'author_id')->widget(Select2::classname(), [     'data' => ArrayHelper::map(Author::find()->all(), 'id', 'name'),     'theme' => Select2::THEME_BOOTSTRAP,     'size' => Select2::LARGE,     'options' => ['placeholder' => Yii::t('app', 'Select...')],     'pluginOptions' => [         'allowClear' => true     ], ]);      ?>    <?=  $form->field($model, 'bookArray')->widget(Select2::classname(), [     'data' => ArrayHelper::map(Book::find()->all(), 'id', 'name'),     'theme' => Select2::THEME_BOOTSTRAP,     'size' => Select2::LARGE, ...

Formulario con Select2

Imagen
En esta entrada les muestro como modificar un formulario generado de una tabla de muchos a muchos:  1.- Modificar el formulario colocando los selectores:  <?=  $form->field($model, 'author_id')->widget(Select2::classname(), [     'data' => ArrayHelper::map(Author::find()->all(), 'id', 'name'),     'theme' => Select2::THEME_BOOTSTRAP,     'size' => Select2::LARGE,     'options' => ['placeholder' => Yii::t('app', 'Select...')],     'pluginOptions' => [         'allowClear' => true     ], ]);      ?>  <?=  $form->field($model, 'book_id')->widget(Select2::classname(), [     'data' => ArrayHelper::map(Book::find()->all(), 'id', 'name'),     'theme' => Select2::THEME_BOOTSTRAP,     'size' => Select2::LARGE,     'options' => ['placeholder' => Yii::t...

Categoría Detalle Yii2 Variante 2

Imagen
 Pasos para crear la variante 2 de categoría detalle: 1.- Generar el crud de author_book       Model Class:      backend\modules\bookstore\models\AuthorBook\AuthorBook      Search Model Class:      backend\modules\bookstore\models\AuthorBook\AuthorBookSearch      Controller Class:      backend\modules\bookstore\controllers\AuthorBookController      View Path:      @backend/modules/bookstore/views/author-book 2.- Agregar una columna:  [     'attribute' => 'author_id',       'value' => 'author.name',      'group' => true,  // enable grouping,     'groupedRow' => true,                    // move grouped column to a single grouped row     'groupOddCssClass' => 'kv-grouped-row',  // configure odd group cell css class ...