Tablas Vinculadas

Versión 9 (Guillermo Zdanowicz, 29/03/2016 20:27)

1 1 Guillermo Zdanowicz
h1. Tablas Vinculadas
2 1 Guillermo Zdanowicz
3 1 Guillermo Zdanowicz
Cuando vinculamos tablas deseamos que datos de distintas tablas se reflejen en nuestro formulario
4 1 Guillermo Zdanowicz
*
5 1 Guillermo Zdanowicz
1 - Si tenemos un listado de compras queremos que en alguna columna aparezca la identificacion del proveedor.*
6 1 Guillermo Zdanowicz
7 8 Guillermo Zdanowicz
Para ello agregamos en */views/compras/index.php*:
8 1 Guillermo Zdanowicz
9 1 Guillermo Zdanowicz
10 3 Guillermo Zdanowicz
<pre>
11 3 Guillermo Zdanowicz
    <?= GridView::widget([
12 3 Guillermo Zdanowicz
        'dataProvider' => $dataProvider,
13 3 Guillermo Zdanowicz
        'filterModel' => $searchModel,
14 3 Guillermo Zdanowicz
        'columns' => [
15 3 Guillermo Zdanowicz
            ['class' => 'yii\grid\SerialColumn'],
16 3 Guillermo Zdanowicz
17 3 Guillermo Zdanowicz
            'id',
18 6 Guillermo Zdanowicz
            </pre><pre>'descripcionproveedor.identificacion',</pre><pre>
19 3 Guillermo Zdanowicz
            'descripcion',
20 3 Guillermo Zdanowicz
            'fecha_factura',
21 3 Guillermo Zdanowicz
            'importe',
22 3 Guillermo Zdanowicz
            // 'fecha_recepcion',
23 3 Guillermo Zdanowicz
            // 'imputacion_compra',
24 3 Guillermo Zdanowicz
            // 'comprobante',
25 3 Guillermo Zdanowicz
            // 'pagado',
26 3 Guillermo Zdanowicz
            // 'modo_pago',
27 3 Guillermo Zdanowicz
28 3 Guillermo Zdanowicz
            ['class' => 'yii\grid\ActionColumn'],
29 3 Guillermo Zdanowicz
        ],
30 3 Guillermo Zdanowicz
    ]); ?>
31 3 Guillermo Zdanowicz
</pre>
32 1 Guillermo Zdanowicz
33 8 Guillermo Zdanowicz
en */models/Compras.php*
34 1 Guillermo Zdanowicz
35 9 Guillermo Zdanowicz
Para vincular con un proveedor
36 9 Guillermo Zdanowicz
37 9 Guillermo Zdanowicz
<pre>
38 9 Guillermo Zdanowicz
    public function getProveedores()
39 9 Guillermo Zdanowicz
    {
40 9 Guillermo Zdanowicz
		
41 9 Guillermo Zdanowicz
        return $this->hasOne(Proveedores::className(),['id'=>'idproveedor'] );
42 9 Guillermo Zdanowicz
    }
43 9 Guillermo Zdanowicz
</pre>
44 9 Guillermo Zdanowicz
45 9 Guillermo Zdanowicz
46 9 Guillermo Zdanowicz
Para obtener un listado de proveedores vinculados en caso de existir mas de uno vinclado (no es este caso!!!)
47 7 Guillermo Zdanowicz
<pre>
48 7 Guillermo Zdanowicz
    public function getDescripcionproveedor()
49 7 Guillermo Zdanowicz
    {
50 7 Guillermo Zdanowicz
		
51 7 Guillermo Zdanowicz
        return $this->hasMany(Proveedores::className(),['id'=>'idproveedor'] );
52 7 Guillermo Zdanowicz
    }
53 7 Guillermo Zdanowicz
</pre>
54 1 Guillermo Zdanowicz
55 1 Guillermo Zdanowicz
*2 - En la carga de datos de compras debemos selleccionar el proveedor*
56 1 Guillermo Zdanowicz
57 1 Guillermo Zdanowicz
Agregamos una lista desplegable en el formulario
58 1 Guillermo Zdanowicz
59 8 Guillermo Zdanowicz
*/views/compras/_form.php*
60 1 Guillermo Zdanowicz
61 1 Guillermo Zdanowicz
<pre>
62 2 Guillermo Zdanowicz
...
63 2 Guillermo Zdanowicz
64 2 Guillermo Zdanowicz
use yii\helpers\ArrayHelper;
65 2 Guillermo Zdanowicz
use app\models\Proveedores;
66 2 Guillermo Zdanowicz
67 2 Guillermo Zdanowicz
...
68 2 Guillermo Zdanowicz
69 1 Guillermo Zdanowicz
    <?= $form->field($model, 'idproveedor')->dropDownList(
70 1 Guillermo Zdanowicz
		ArrayHelper::map(Proveedores::find()->all(),'id','identificacion' )
71 1 Guillermo Zdanowicz
72 1 Guillermo Zdanowicz
	) ?>
73 1 Guillermo Zdanowicz
</pre>
Redmine Appliance - Powered by TurnKey Linux