Guardar el valor id seleccionado en Select2 a variable php

Hola como estan , tengo una duda existencial de como resolver esto:
Tengo 3 tablas = Automoviles ; tb_reparticiones ; rel_automovil_reparticiones (campos= id; automoviles_id; reparticion_id ; fecha_alta; fecha_baja, etc ). La idea es para un sistema de patrimonio, un automóvil puede estar en varias reparticiones a lo largo de su vida útil, de ahí es q utilizo una tabla relacional entre automóviles y reparticiones. En el form de automoviles tuve q agregar un select2 con un campo fuera del modelo (el campo reparticion_id esta en la relacional), utilizando variables de session mi idea es capturar ese id_reparticion elegido del select2 y pasarlo al controlador Create. este es un pedazo de mi _form
cargo todos mis use mas estos 2

use kartik\select2\Select2;
use yii\web\Session;

<?php
  $reparticion=TbReparticiones::find()->orderBy('reparticion')->all();         
  // without model
  echo Select2::widget([
      'name' => 'reparticion',
      'data' => ArrayHelper::map($reparticion,'id_reparticion','reparticion'),
      'options' => [
                    'placeholder' => 'Seleccione la reparticion ...',                                            
                    'class'=>'form-control',                       
                   
                ],
              
       'pluginEvents'=>["select2:select" => "function() { var variableJS = $(this).val(); 
                                                          alert (variableJS);          }",]    

   ]);   

   //$var_PHP = "<script> document.writeln(variableJS); </script>";     
   
   $var_PHP= 155;      
   $session = Yii::$app->session;
   $session['ValorReparticion'] = $var_PHP;
                  
  ?>
<br>                  
</div>  

observacion= colocando $var_PHP en un valor fijo funciona perfectamente, la linea anterior comentada la saque de google y funciona si la uso con php puro en otro sitio ejemplo

Volviendo a YII2 , este es mi codigo del controlador

agrego este use
use yii\web\Session;
public function actionCreate()
{
$model = new Automoviles();

    if ($model->load(Yii::$app->request->post()) && $model->save()) {           
        

        $fecha_alta = date('Y-m-d');
        $causa_baja = null; 
        $causa_alta = 1;
        $fecha_baja = null;   
        $session = Yii::$app->session;
        $reparticion = $session['ValorReparticion'];

        Yii::$app->db->createCommand()->insert('rel_automoviles_reparticiones', [
        'automovil_id' => $model->id,
        'reparticion_id' => $reparticion,
        'fecha_alta' => $fecha_alta,
        'fecha_baja' => $fecha_baja,
        'causa_alta_id' => $causa_alta,
        'causa_baja_id' => $causa_baja,
        'observacion' => $model->observaciones,
        ])->execute();            
        return $this->redirect(['view', 'id' => $model->id]);
      
    }

    return $this->render('create', [
        'model' => $model,
    ]);
}

ESTE codigo del controlador inserta automaticamente en la tabla automoviles lo ingresado por el form, y luego a mano inserto los valores en la tabla tb_rel_automoviles_reparticiones, aqui ya tengo el id insertado del automovil.
Mi gran pregunta es, como tomo el valor de la reparticion en el select2 en una variable? el valor fijo funcino perfecto pero esta linea no :
$var_PHP = “<script document.writeln(variableJS); /script>”; (falta aqui los signo sino no me muestra pero en el php de arriba esta bien)

en el select2 puse un alert en javascrip y me muestra cada id de la reparticion q voy seleccionando, pero como hago para sacar ese valor y colocarlo en mi variable $var_PHP. Gracias

Con ActiveForm es más fácil. Primero cree la relación en el modelo, algo así:

public function getCategory()
{
    return $this->hasOne(Category::className(), ['id' => 'category_id']);
}

Después use esa relación para crear el select

$form->field($model, 'category_id')->widget(Select2::classname(), [
                'data' => ArrayHelper::map(Category::find()->all(), 'id', 'category'),
                'language' => 'es',
                'options' => ['placeholder' => 'Select a category ...'],
                'pluginOptions' => [
                    'allowClear' => true
                ],
            ])

En mi caso paso la foránea category_id y no tengo que hacer nada en el create, mire el data que paso el id y muestro ‘category’. La relación creo que no es obligatoria pero le va a servir mucho para otras situaciones

Hola gracias por la respuesta, pero creo q es aplicable cuando la clave foreana esta dentro de la tabla q estoy por dar el alta, por ejemplo si el id repartición estuviera dentro de automóviles, pero de esta forma solo guardaría el ultimo lugar donde estuvo el auto, en mi caso necesito saber la historia del automóvil en las reparticiones, para eso cree una tabla relacional entre automóvil y reparticiones (rel_automovil_reparticiones ahi guardo el id del auto, id de la reparticiones y datos como fecha de alta, baja etc). Cuando creo el CRUD del automovil me trae todos los campos de esa tabla, ahora bien, el id reparticion al no estar en la tabla automovil la agrego con el select2 con un campo fuera del modelo (reparticion_id esta en la tabla relacional), ahora luego de inserta el auto, tomo el id y hago una insercion a mano en la tabla relacional como veras en el controlador, tengo el drama q ya guarde el id de la reparticion en java pero necesito pasarla a php, creo q por el lado de ajax estaria la solucion, igual gracias por tu tiempo