Como agregar relación de indice a modelo.

Cómo agregar una relación de llave foranea cuando no existe en el modelo de Base de Datos.


La formá más común de agregar una relación dentre una tabla y otra es la que genera Yii de manera automática al crear un nuevo modelo con gii, pero cuando esa relación no existe físicamente en la Base de Datos esa relación no se agregará en automática, son pocos los casos donde se da esto, no es muy común y he aquí por que la importancia se saberlo.

La manera más simple es entrar al modelo y al final de los métodos agregar éstas líneas.

Nota Importante: Este método no verifica la la integridad de las llaves foraneas.

Donde "Keyword::className()" es el nombre del modelo con el cual se está realizando la relación "getKeywords" es el nombre de la relacion dentro del mismo modelo


class BitacoraKeyword extends \yii\db\ActiveRecord {

......
   
  public function getKeywords() {
          return $this->hasMany(Keyword::className(), ['keyword_id' => 'id']);
      }

...
}



Fuentes:

https://stackoverflow.com/questions/48182345/yii2-add-model-to-hasmany-relation-in-runtime
https://www.yiiframework.com/doc/api/2.0/yii-db-baseactiverecord#populateRelation()-detail


Comentarios

Aprende Yii2


Lo más Visto

Guía rápida para uso de widget kartik para select para formulario

Cómo incluir una vista dentro de un modal

Tutorial de implementación de calendario de rango de fechas con Karkit en gridView

Google Plus desaparecerá el 4 de Abril de 2019

Crear fomulario HTML con checkbox sin Active Record

hostinger

ventana bienvenida