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' )
) ?>