I created an editable gridview, but its not saving. Also its displlaying the company_id instead of inspector_name
7205
Controller
public function actionZonalmapping()
{
$user = Yii::$app->getid->getId();
$zonalSession = Yii::$app->session->get('zonal_id');
$ZonalMaster = ZonalAdministrator::find()->andWhere(['zonal_id' => $zonalSession])->one();
$ZonalInfo = ZonalAdministrator::findOne($ZonalMaster->zonal_id);
$zonalZone = Zone::findOne($ZonalMaster->zone_id);
$zone = $ZonalInfo->zone_id;
$model = new InspectionMapping();
$modelSearch = new InspectionMappingSearch();
$dataProvider = $modelSearch->searchmappings(Yii::$app->request->queryParams,$zone);
if (Yii::$app->request->post('hasEditable'))
{
$_id=$_POST['editableKey'];
$model = $this->findModel($_id);
$out = Json::encode(['output'=>'', 'message'=>'']);
$post = [];
$posted = current($_POST['InspectionMapping']);
$post['InspectionMapping'] = $posted;
if ($model->load($post)) {
$model->save();
$output = '';
if (isset($posted['company_id']))
{
$output = $model->inspector->inspector_name;
}
$out = Json::encode(['output'=>$output, 'message'=>'']);
}
echo $out;
return;
}
return $this->render('zonalmapping', [
'model' => $model,
'modelSearch' => $modelSearch,
'dataProvider' => $dataProvider,
]);
}
model
public function rules()
{
return [
[['building_id', 'tariff_id', 'fee_id', 'company_id', 'zone_id', 'is_inspected', 'is_paid', 'is_booked', 'is_mapped_to_inspector', 'is_mapped_to_zone'], 'integer'],
[['mapping_date'], 'required'],
[['mapping_date'], 'safe']
];
}
/**
* @inheritdoc
*/
public function attributeLabels()
{
return [
'inspection_mapping_id' => 'Inspection Mapping ID',
'building_id' => 'Building ID',
'tariff_id' => 'Tariff ID',
'fee_id' => 'Fee ID',
'company_id' => 'Company ID',
'zone_id' => 'Zone ID',
'is_inspected' => 'Is Inspected',
'is_paid' => 'Is Paid',
'is_booked' => 'Is Booked',
'is_mapped_to_zone' => 'Is Mapped To Zone',
'is_mapped_to_inspector' => 'Is Mapped To Inspector',
'mapping_date' => 'Mapping Date',
];
}
public function getBuilding()
{
return $this->hasOne(Building::className(), ['building_id' => 'building_id']);
}
public function getTariff()
{
return $this->hasOne(BuildingTariff::className(), ['tariff_id' => 'tariff_id']);
}
public function getFee()
{
return $this->hasOne(Fee::className(), ['fee_id' => 'fee_id']);
}
public function getZone()
{
return $this->hasOne(Zone::className(), ['zone_id' => 'zone_id']);
}
public function getInspector()
{
return $this->hasOne(Inspector::className(), ['company_id' => 'company_id']);
}
public function getBuildingName()
{
return $this->building->building_name;
}
modelSearch
public function searchmappings($params,$zone=null)
{
$query = InspectionMapping::find()->where(['=', 'is_mapped_to_zone', 1])->andwhere(['=', 'zone_id', $zone]);
$dataProvider = new ActiveDataProvider([
'query' => $query,
]);
$this->load($params);
if (!$this->validate()) {
return $dataProvider;
}
$query->andFilterWhere([
'inspection_mapping_id' => $this->inspection_mapping_id,
'building_id' => $this->building_id,
'tariff_id' => $this->tariff_id,
'fee_id' => $this->fee_id,
'company_id' => $this->company_id,
'zone_id' => $this->zone_id,
'is_inspected' => $this->is_inspected,
'is_paid' => $this->is_paid,
'is_booked' => $this->is_booked,
'is_mapped_to_inspector' => $this->is_mapped_to_inspector,
'mapping_date' => $this->mapping_date,
]);
return $dataProvider;
}
view
<div class="mapping-form">
<h1><?= Html::encode($this->title) ?></h1>
<?php // echo $this->render('_search', ['model' => $searchModel]);
$user = Yii::$app->getid->getId();
$zonalSession = Yii::$app->session->get('zonal_id');
$ZonalMaster = ZonalAdministrator::find()->andWhere(['zonal_id' => $zonalSession])->one();
$ZonalInfo = ZonalAdministrator::findOne($ZonalMaster->zonal_id);
$zonalZone = Zone::findOne($ZonalMaster->zone_id);
$zone = $ZonalInfo->zone_id;
?>
<?php
$companys=ArrayHelper::map(Inspector::find()->asArray()->andWhere(['zone_id' => $zone])->all(), 'company_id', 'inspector_name');
?>
<?= GridView::widget([
'dataProvider' => $dataProvider,
// 'filterModel' => $searchModel,
'pjax' => true,
'export' => false,
'columns' => [
['class' => 'yii\grid\SerialColumn'],
[
'label'=>'Building',
'attribute'=>'building_id',
'value'=>'building.building_name',
],
[
'label'=>'Zone',
'attribute'=>'zone_id',
'value'=>'zone.zone_name',
],
[
'class' => 'kartik\grid\EditableColumn',
'label'=>'Inspector',
'attribute'=>'company_id',
'value' => 'inspector.inspector_name',
// 'displayValueConfig' => $companys,
'pageSummary' => true,
'editableOptions'=> [
'header' => 'Inspector',
'format' => Editable::FORMAT_BUTTON,
'inputType' => Editable::INPUT_DROPDOWN_LIST,
'data'=> $companys,//$StatusList,
'options' => ['class'=>'form-control', 'prompt'=>'Select Inspector...'],
]
],
[
'label'=>'Tariff Group',
'attribute'=>'tariff_id',
'value'=>'tariff.tariff_group_detail',
],
[
'label'=>'Fee',
'attribute'=>'fee_id',
'value'=>'fee.value',
],
],
]); ?>
</div>
Please help