Tablas Vinculadas
Versión 6 (Guillermo Zdanowicz, 17/03/2016 22:50) → Versión 7/9 (Guillermo Zdanowicz, 17/03/2016 22:51)
h1. 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:
<pre>
<?= GridView::widget([
'dataProvider' => $dataProvider,
'filterModel' => $searchModel,
'columns' => [
['class' => 'yii\grid\SerialColumn'],
'id',
</pre><pre>'descripcionproveedor.identificacion',</pre><pre>
'descripcion',
'fecha_factura',
'importe',
// 'fecha_recepcion',
// 'imputacion_compra',
// 'comprobante',
// 'pagado',
// 'modo_pago',
['class' => 'yii\grid\ActionColumn'],
],
]); ?>
</pre>
en /models/Compras.php
<pre>
public function getDescripcionproveedor()
{
return $this->hasMany(Proveedores::className(),['id'=>'idproveedor'] );
}
</pre>
*2 - En la carga de datos de compras debemos selleccionar el proveedor*
Agregamos una lista desplegable en el formulario
/views/compras/_form.php
<pre>
...
use yii\helpers\ArrayHelper;
use app\models\Proveedores;
...
<?= $form->field($model, 'idproveedor')->dropDownList(
ArrayHelper::map(Proveedores::find()->all(),'id','identificacion' )
) ?>
</pre>
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:
<pre>
<?= GridView::widget([
'dataProvider' => $dataProvider,
'filterModel' => $searchModel,
'columns' => [
['class' => 'yii\grid\SerialColumn'],
'id',
</pre><pre>'descripcionproveedor.identificacion',</pre><pre>
'descripcion',
'fecha_factura',
'importe',
// 'fecha_recepcion',
// 'imputacion_compra',
// 'comprobante',
// 'pagado',
// 'modo_pago',
['class' => 'yii\grid\ActionColumn'],
],
]); ?>
</pre>
en /models/Compras.php
<pre>
public function getDescripcionproveedor()
{
return $this->hasMany(Proveedores::className(),['id'=>'idproveedor'] );
}
</pre>
*2 - En la carga de datos de compras debemos selleccionar el proveedor*
Agregamos una lista desplegable en el formulario
/views/compras/_form.php
<pre>
...
use yii\helpers\ArrayHelper;
use app\models\Proveedores;
...
<?= $form->field($model, 'idproveedor')->dropDownList(
ArrayHelper::map(Proveedores::find()->all(),'id','identificacion' )
) ?>
</pre>