Tablas Vinculadas¶
Cuando vinculamos tablas deseamos que datos de distintas tablas se reflejen en nuestro formulario
1 - Si tenemos un listado de compras queremos que en alguna columna aparezca la identificacion del proveedor.
Para ello agregamos en /views/compras/index.php:
<?= GridView::widget([ 'dataProvider' => $dataProvider, 'filterModel' => $searchModel, 'columns' => [ ['class' => 'yii\grid\SerialColumn'], 'id',
'descripcionproveedor.identificacion',
'descripcion', 'fecha_factura', 'importe', // 'fecha_recepcion', // 'imputacion_compra', // 'comprobante', // 'pagado', // 'modo_pago', ['class' => 'yii\grid\ActionColumn'], ], ]); ?>
en /models/Compras.php
Para vincular con un proveedor
public function getProveedores() { return $this->hasOne(Proveedores::className(),['id'=>'idproveedor'] ); }
Para obtener un listado de proveedores vinculados en caso de existir mas de uno vinclado (no es este caso!!!)
public function getDescripcionproveedor() { return $this->hasMany(Proveedores::className(),['id'=>'idproveedor'] ); }
2 - En la carga de datos de compras debemos selleccionar el proveedor
Agregamos una lista desplegable en el formulario
/views/compras/_form.php
... use yii\helpers\ArrayHelper; use app\models\Proveedores; ... <?= $form->field($model, 'idproveedor')->dropDownList( ArrayHelper::map(Proveedores::find()->all(),'id','identificacion' ) ) ?>