Relacion Yii2


(Jorge7712051) #1

Buen día

Tengo un problema con la siguiente relación

models/CentroCostos




public function getUsuarios()

    {

        return $this->hasMany(Usuarios::className(), ['centrocosto' => 'idcentrocostos']);

    }

Cuanto la consulto me salen los datos repetidos 2 veces unos salen bajo el siguiente llave ["_attributes":"yii\db\BaseActiveRecord":private] y los repetidos ["_oldAttributes":"yii\db\BaseActiveRecord":private]




 public static function buscarmodelo($id){

        $centro= CentroCostos::findOne($id);

        if($centro !== null)

        {   

            $usuarios=$centro->usuarios;

            var_dump($centro->usuarios);

            $ids="";

            foreach($usuarios as $users)

        { 

            $ids.=$ids.",".$users->id;

        }


            $ids=trim($ids,",");     

            Usuarios::buscarmodelo($ids);

            $centro->idanulo=1;

            $centro->save();


            return true;

        }

        return false;

    }

el problema es que cuando los recorro y los guardo dentro del ciclo me los guarda reptidos?? ¿Alguna idea de por que sale de a dos veces cada dato??


(Rhf1898) #2

Hola, prueba a cambiar la linea:

por




$ids = $ids . "," . $users->id;



o por,




$ids .= "," . $users->id;



saludos


(Jorge7712051) #3

Hola gracias por responder, cambie la linea pero sigue igual. El problema esta cuando tengo los datos de la relación no se porque al declarar la relación me trae los datos repetidos . Al hacer un Vardump a la relación me encuentro que los datos salen dos veces de la siguiente manera

["_attributes":"yii\db\BaseActiveRecord":private]

y los repetidos ["_oldAttributes":"yii\db\BaseActiveRecord":private]

No se si extsta alguna forma de solo tener los de la llave _attibutes


(Rhf1898) #4

En este enlace te explica el porque existen los 2.

No debería influir al guardar los datos, solo se guardan los que estan en _attributes.

Espero te ayude en algo.

saludos