GridView con mas de dos modelos

Buen día, tengo un problema que no logro solucionar tengo 3 modelos PAÍS, DEPARTAMENTO Y CIUDAD, necesito que en el GridView de ciudad salga el departamento al que pertenece la ciudad y el país al que pertenece dicho departamento. El inconveniente es que la ciudad solo tiene una relación con el departamento.

    public function getDepartamento()
        {
            return $this->hasOne(Departamento::className(), ['id' => 'iddepartamento']);
        }

Mi modelo ciudadesSearch lo tengo asi

public function search($params)
    {
        $query = Ciudades::find();
        $query->where('ciudades.idanulo=0');
        $query->joinWith(['departamento']);
        $query->innerJoin('pais', 'departamento.idpais= pais.id');
        // add conditions that should always apply here

        $dataProvider = new ActiveDataProvider([
            'query' => $query,

        ]);
        $dataProvider->sort->attributes['departamento'] = [
        // The tables are the ones our relation are configured to
        // in my case they are prefixed with "tbl_"
        'asc' => ['departamento.nombre' => SORT_ASC],
        'desc' => ['departamento.nombre' => SORT_DESC],
    ];

        $this->load($params);

        if (!$this->validate()) {
            // uncomment the following line if you do not want to return any records when validation fails
            // $query->where('0=1');
            return $dataProvider;
        }

        // grid filtering conditions
        $query->andFilterWhere([
            'idciudad' => $this->idciudad,            
            'idanulo' => $this->idanulo,
        ]);

        $query->andFilterWhere(['like', 'ciudad', $this->ciudad]);
        $query->andFilterWhere(['like', 'departamento.nombre', $this->departamento]);

        return $dataProvider;
    }

alguna idea o sugerencia?

Crea la otra relacion y en el grid view la columna ciudad le colocas la relacion

[
‘attribute’ => ‘departamento’,
‘value’ => ‘departamento.departamento_nombre’,
]

Gracias por responder, pero en este caso como crearía la relación con PAÍS si CIUDAD únicamente esta relacionada con DEPARTAMENTO?.

Es el modelo de PAÍS el que no logro incorporar ya que no esta relacionado directamente con CIUDAD.

@jorge7712051

Si puedes colocar el diagrama entidad relación de tu base de datos o los esquemas de las 3 tablas para poderte ofrecer un mejor soporte, debe existir un campo foráneo entre las 3 tablas para poder unir las tablas.

Hola mira como se relacionan las tablas.

diagrama%20e-r

realmente es bastante sencillo, pero el framework de yii2 no lo manejo muy bien.

Recomiendo generar las relaciones de la siguiente manera

// Obtener el Estado
public function getPais()
{
return $this->hasOne(Pais::className(), [‘id’ => ‘id_pais’]);
}

// Obtener el Departamento
public function getDepartamento()
{
return $this->hasOne(Departamento::className(), [‘id’ => ‘iddepartamento’]);
}

El de ciudad esta más complicado porque no veo como relacionarlo con las otras tablas.