¿Como mostrar datos en GridView que pertenezcan a un ID?

Hola a todos tengo una duda Tengo una tabla llamada Foros y otra Temas

FORO

-id

-otros_campos

TEMAS

-id

-id_foro

-otros_campos

Lo que hago es lo siguiente al Entrar al Index de Foros me muestra todos los foros. Ahora al entrar a la accion View del Foro mando otro gridview con el dataProvider del controller así.

public function actionView($id)


{   


    


    $searchModelView = new TemasSearch();


    $dataProviderView = $searchModelView->search(Yii::$app->request->queryParams);  


    


    return $this->render('view', [


        'model' => $this->findModel($id),


        'searchModel' => $searchModelView,


        'dataProvider' => $dataProviderView,


    ]);       





    


}

Y en el modelo de busqueda TemasSearch tengo la siguiente funcion para mandar el id del foro que recupero de una variable global al entrar al mismo view.

public function search($params)

{


    $query = Temas::find()->where(['id_foro' => $_SESSION['idForo']]);





    // add conditions that should always apply here





          $dataProvider = new ActiveDataProvider([


        'query' => $query,


    ]);

El problema es que al entrar la variable no carga por defecto tengo que re cargar la pagina para que actualice el gridview. y ya me muestre los temas que estan relacionados con el foro.

Lo estaba solucionando con un script que me actualice la vista una sola vez, pero al iniciar mi aplicacion no entra el script si no hasta que lo navego en la ap. es decir no funciona a la primera. Entonces necesito otra idea para llenar esa variable o que me mande el id en el filtro para solo mostrar los temas de ese foro.