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

    ) ?>
Redmine Appliance - Powered by TurnKey Linux