I have this form
7130
And when I click on the continue submit button, it displays this error
7131
See my code below:
Inspection
Controller
public function actionUpdate($building_id, $bip_id, $inspector_id)
{
$model = new InspectionBooking();
// $model = $this->findModel($id);
$rating = new InspectionRatingScale();
$scoreditem = new Scoreditem();
$scoreditems=$scoreditem->getBuildingScoreditem($building_id);
$scoredequipment = new ScoredEquipment();
$scoredequipments=$scoredequipment->getBuildingScoredequipment($building_id);
$scoreditemscore = new ScoredItemScore();
$scoredequipmentscore = new ScoredEquipmentScore();
$scoreditemscore1=$scoreditemscore->getScore($building_id,$bip_id);
$scoredequipmentscore1=$scoredequipmentscore->getScore($building_id,$bip_id);
$inspectioncomment = new InspectionComment();
$inspectioncomment=$inspectioncomment->find('building_id=:buildingid and bookinspection_id=:bkinspid',array(':buildingid'=>$building_id,':bookinspection_id'=>$bip_id));
if(!isset($inspectioncomment))
$inspectioncomment = new InspectionComment();
if(isset($_POST['InspectionRatingScale'])){
foreach ($_POST['InspectionRatingScale']['scoreditem'] as $key=>$value)
{
$scoreditemscore=$scoreditemscore->find('building_id=:buildingid and bookinspection_id=:bkinspid and item_id=:id',array(':buildingid'=>$building_id,':bkinspid'=>$bip_id,':id'=>$key));
if(!isset($scoreditemscore))
$scoreditemscore = new ScoredItemScore();
// die(var_dump($scoreditemscore));
$scoreditemscore->item_id=$key;
$scoreditemscore->rating=$value['rating_text'];
$scoreditemscore->date_inspected=Date("Y/m/d");
$scoreditemscore->date_updated= Date("Y/m/d");
$scoreditemscore->scored_comment= $_POST['ScoredItemScore']['scored_comment'];
$scoreditemscore->building_id=$building_id;
$scoreditemscore->bookinspection_id=$bip_id;
$scoreditemscore->inspector_id=$inspector_id;
$scoreditemscore->save();
}
foreach ($_POST['InspectionRatingScale']['scoredequipment'] as $key=>$value)
{
$scoredequipmentscore=$scoredequipmentscore->find('building_id=:buildingid and bookinspection_id=:bkinspid and equipment_id=:id',array(':buildingid'=>$building_id,':bkinspid'=>$bip_id,':id'=>$key));
if(!isset($scoredequipmentscore))
$scoredequipmentscore = new ScoredEquipmentScore();
$scoredequipmentscore->item_id=$key;
$scoredequipmentscore->rating=$value['rating_text'];
$scoredequipmentscore->date_inspected=Date("Y/m/d");
$scoredequipmentscore->date_updated= Date("Y/m/d");
$scoredequipmentscore->scored_comment= $_POST['ScoredequipmentScore']['scored_comment'];
$scoredequipmentscore->building_id=$building_id;
$scoredequipmentscore->bookinspection_id=$bip_id;
$scoredequipmentscore->inspector_id=$inspector_id;
$scoredequipmentscore->save();
/*
if($coreditemscore->validate())
$coreditemscore->save();
else
die(var_dump($coreditemscore->getErrors()));
*/
}
$inspectioncomment=$inspectioncomment->find('building_id=:buildingid and bookinspection_id=:bkinspid',array(':buildingid'=>$building_id,':bkinsid'=>$bip_id));
if(!isset($inspectioncomment))
$inspectioncomment = new InspectionComment();
$inspectioncomment->comment_supervisor=$_POST['InspectionComment']['comment_supervisor'];
$inspectioncomment->bookinspection_id=$bip_id;
$inspectioncomment->building_id=$building_id;
$inspectioncomment->save();
if(isset($_POST['continue']))
{
// $this->redirect(array('view','id'=>$id,'appraisal_id'=>$appraisal_id));
$this->redirect(['view', 'building_id' => $building_id, 'bookinspection_id' => $bip_id, 'inspector_id' => $inspector_id ]);
}
/*
if ($model->load(Yii::$app->request->post()) && $model->save()) {
return $this->redirect(['view', 'id' => $model->bookinspection_id]);
} else {
return $this->render('update', [
'model' => $model,
// 'building_id' => $building_id,
]);
}
*/
}
return $this->render('update', [
// 'model' => $model,
'rating' => $rating,
// 'scoreditem' => $scoreditem,
'scoreditems' => $scoreditems,
// 'scoredequipment' => $scoredequipment,
'scoredequipments' => $scoredequipments,
'scoreditemscore'=>$scoreditemscore1,
'scoredequipmentscore'=>$scoredequipmentscore1,
'inspectioncomment'=>$inspectioncomment,
]);
}
View
<?php
use yii\helpers\Html;
use yii\widgets\DetailView;
use yii\helpers\Url;
use yii\widgets\ActiveForm;
use yii\helpers\ArrayHelper;
use yii\jui\DatePicker;
use kartik\grid\GridView;
use kartik\builder\TabularForm;
use kartik\widgets\Select2;
use kartik\depdrop\DepDrop;
use app\modules\inspection\models\Inspection;
use app\modules\inspection\models\ScoredItemScore;
use app\modules\inspection\models\ScoredEquipmentScore;
use app\modules\inspection\models\InspectionRatingScale;
use app\modules\inspection\models\InspectionBooking;
use app\modules\inspection\models\InspectionComment;
use app\modules\consumers\models\Building;
use app\modules\contractors\models\Inspector;
/* @var $this yii\web\View */
/* @var $model app\models\Inspector */
/*
$this->title = 'Update Inspection: ' . ' ' . $model->inspectionsheet_id;
$this->params['breadcrumbs'][] = ['label' => 'Inspectors', 'url' => ['index']];
$this->params['breadcrumbs'][] = ['label' => $model->inspectionsheet_id, 'url' => ['view', 'id' => $model->inspectionsheet_id]];
$this->params['breadcrumbs'][] = 'Update';
*/
//$this->title = 'Building Inspection';
//$title = 'Inspection Sheet';
$this->title = 'Building Inspection';
$this->params['breadcrumbs'][] = $this->title;
?>
<style type="text/css">
/* tbody#special td+td+td {
background:red;
*/
tr.group,
tr.group:hover {
background-color: #ddd !important;
}
</style>
<div class="col-xs-12 col-lg-12">
<!--<div class="inspector-update"> -->
<!--</div>-->
<!--</div>-->
<div class="inspection-form">
<?php $form = ActiveForm::begin(['id' => 'inspection-form']); ?>
<h1>Inspection Sheet</h1>
<!-- Main content -->
<section class="content">
<div class="row">
<div class="col-xs-12">
<div class="box">
<div class="box-header">
<h3 class="box-title">Scoring Items</h3>
</div>
<!-- /.box-header -->
<div class="box-body">
<table id="example1" class="table table-bordered table-striped">
<thead>
<tr>
<th>Activity</th>
<th>Building Rating</th>
<th>Comment</th>
</tr>
</thead>
<tbody>
<?php //$competencies=$competency->findAll();
if(count($scoreditemscore)>=1){
foreach ($scoreditemscore as $cvalue)
{
?>
<tr>
<td><?php echo $cvalue['item_name'] ?></td>
<td>
<?php
$name="InspectionRatingScale[scoreditem][$cvalue[item_id]][rating_text]";
$yn=array("$cvalue[rating]"=>array('selected'=>true));
//echo $form->dropDownList($rating, 'rating_text', ArrayHelper::map($rating->findAll(),'rating_value','rating_text'),array('class'=>'form-control','name'=>$name,'options'=>$yn))->label(false);
echo $form->field($rating, 'rating_text')->dropDownList(ArrayHelper::map(\app\modules\inspection\models\InspectionRatingScale::find()->all(),'rating_value','rating_text'), ['name'=>$name,'options'=>$yn])->label(false);
?>
</td>
<td>
<?php echo $form->field($scoreditemscore, 'scored_comment')->textInput() ?>
</td>
</tr>
<?php
}
}
else{
foreach ($scoreditems as $cvalue)
{
?>
<tr>
<td><?php echo $cvalue['item_name'] ?></td>
<td>
<?php
$name="InspectionRatingScale[scoreditem][$cvalue[item_id]][rating_text]";
// echo $form->dropDownList($rating, 'rating_text', ArrayHelper::map($rating->findAll(''),'rating_value','rating_text'),array('class'=>'form-control','name'=>$name));
echo $form->field($rating, 'rating_text')->dropDownList(ArrayHelper::map(\app\modules\inspection\models\InspectionRatingScale::find()->all(),'rating_value','rating_text'), ['name'=>$name])->label(false);
// $listData=ArrayHelper::map($countries,'code','name');
// echo $form->field($model, 'name')->dropDownList($listData, ['prompt'=>'Choose...']);
// $name="InspectionRatingScale[scoreditem][$cvalue[rating_id]][rating_text]";
// echo $form->dropDownList($rating, 'rating_text', ArrayHelper::map($rating->findAll(),'rating_value','rating_text'),array('class'=>'form-control','name'=>$name));
?>
</td>
<td>
<?php
// die(var_dump($scoreditem));
$sc=new ScoredItemScore();
echo $form->field($sc, 'scored_comment')->textInput()->label(false);;
?>
</td>
</tr>
<?php
}
}
?>
</tbody>
</table>
</div>
</div>
<div class="box">
<div class="box-header">
<h3 class="box-title">Equipments</h3>
</div>
<!-- /.box-header -->
<div class="box-body">
<table id="example1" class="table table-bordered table-striped">
<thead>
<tr>
<th>Equipment Category</th>
<th>Equipment Sub Category</th>
<th>Activity</th>
<th></th>
<th>Comment</th>
</tr>
</thead>
<tbody>
<?php
if(count($scoredequipmentscore)>=1){
foreach ($scoredequipmentscore as $cvalue)
{
?>
<tr>
<td><?php echo $cvalue['equipment_category'] ?></td>
<td><?php echo $cvalue['equipment_sub_category'] ?></td>
<td><?php echo $cvalue['item_name'] ?></td>
<td>
<?php
$name="InspectionRatingScale[scoredequipment][$cvalue[equipment_id]][rating_text]";
$yn=array("$cvalue[rating]"=>array('selected'=>true));
//echo $form->dropDownList($rating, 'rating_text', ArrayHelper::map($rating->findAll(),'rating_value','rating_text'),array('class'=>'form-control','name'=>$name,'options'=>$yn))->label(false);
echo $form->Field($rating, 'rating_text')->dropDownList(ArrayHelper::map(\app\modules\inspection\models\InspectionRatingScale::find()->all(),'rating_value','rating_text'), ['name'=>$name,'options'=>$yn])->hiddenInput()->label(false);
?>
</td>
<td>
<?php
// die(var_dump($scoreditem));
$sc1=new ScoredEquipmentScore();
echo $form->field($sc1, 'scored_comment')->textInput()->label(false);
?>
</td>
</tr>
<?php
}
}
else{
foreach ($scoredequipments as $cvalue)
{
?>
<tr>
<td><?php echo $cvalue['equipment_category'] ?></td>
<td><?php echo $cvalue['equipment_sub_category'] ?></td>
<td><?php echo $cvalue['item_name'] ?></td>
<td>
<?php
$name="InspectionRatingScale[scoredequipment][$cvalue[equipment_id]][rating_text]";
// echo $form->dropDownList($rating, 'rating_text', ArrayHelper::map($rating->findAll(''),'rating_value','rating_text'),array('class'=>'form-control','name'=>$name));
echo $form->Field($rating, 'rating_text')->dropDownList(ArrayHelper::map(\app\modules\inspection\models\InspectionRatingScale::find()->all(),'rating_value','rating_text'), ['name'=>$name])->hiddenInput()->label(false);
//Map Your Model Data using date group Array helper Map Group in yii2
//$model = Registration::findAll();
//$registrationModels = ArrayHelper::map($model , 'event_id' ,'class_id' ,'dates');
?>
</td>
<td>
<?php
// die(var_dump($scoreditem));
$sc1=new ScoredEquipmentScore();
echo $form->field($sc1, 'scored_comment')->textInput()->label(false);
?>
</td>
</tr>
<?php
}
}
?>
</tbody>
</table>
</div>
</div>
<div class="box">
<div class="box-header">
<h3 class="box-title">Overall Comment:</h3>
</div>
<!-- /.box-header -->
<div class="box-body">
<?php
// echo(CHtml::label('Text Area', 'name'));
// echo($form->textArea($supervisorcomment,'comment_supervisor',array('class'=>'input-block-level','rows'=>'6')));
$ic=new InspectionComment();
echo $form->field($ic, 'comment_supervisor')->textArea(['rows' => '6'])->label(false);
?>
</div>
</div>
</div>
<!-- /.col -->
</div>
<!-- /.row -->
</section>
<!-- /.content -->
<div class="form-group">
<div class="col-xs-12 col-sm-2 col-lg-2">
<button id="but" class="btn btn-primary btn-block btn-lg" name="cancel" type="submit">Cancel</button>
</div>
<div class="col-xs-12 col-sm-2 col-lg-2">
<button id="but1" class="btn btn-primary btn-block btn-lg" name="continue" type="submit">Continue >></button>
</div>
</div>
<?php ActiveForm::end(); ?>
</div> <!-- /.End of Inspection Sheet -->
</div> <!-- /.End of col-xs-12 col-lg-12 -->
<!-- page script -->
<script>
$(function () {
$("#example1").DataTable(
function groupTable($rows, startIndex, total){
if (total === 0){
return;
}
var i , currentIndex = startIndex, count=1, lst=[];
var tds = $rows.find('td:eq('+ currentIndex +')');
var ctrl = $(tds[0]);
lst.push($rows[0]);
for (i=1;i<=tds.length;i++){
if (ctrl.text() == $(tds[i]).text()){
count++;
$(tds[i]).addClass('deleted');
lst.push($rows[i]);
}
else{
if (count>1){
ctrl.attr('rowspan',count);
groupTable($(lst),startIndex+1,total-1)
}
count=1;
lst = [];
ctrl=$(tds[i]);
lst.push($rows[i]);
}
}
}
groupTable($('#example1 tr:has(td)'),0,3);
$('#example1 .deleted').remove();
);
// $("#example1").DataTable();
// $("#example2").DataTable();
$('#example2').DataTable({
"paging": true,
"lengthChange": false,
"searching": true, ///"searching": false,
"ordering": true,
"info": true,
"autoWidth": false
});
});
</script>
Model
<?php
namespace app\modules\inspection\models;
use Yii;
use app\modules\inspection\models\Inspection;
use app\modules\inspection\models\InspectionSearch;
use app\modules\consumers\models\Building;
use app\modules\contractors\models\Inspector;
use app\modules\User;
class Inspection extends \yii\db\ActiveRecord
{
/**
* @inheritdoc
*/
public static function tableName()
{
return 'inspection_sheet';
}
/**
* @inheritdoc
*/
public function rules()
{
return [
[['name', 'building_id', 'inspector_id', 'date_inspected', 'compliance_score'], 'required'],
[['building_id', 'inspector_id'], 'integer'],
[['name'], 'string'],
[['inspection_comment'], 'string'],
[['name'], 'string', 'max' => 254]
];
}
/**
* @inheritdoc
*/
public function attributeLabels()
{
return [
'name' => 'Inspection Sheet Name',
'building_id' => 'Building',
'inspector_id' => 'Inspector',
'compliance_score' => 'Score',
'inspection_comment' => 'Inspection Comment',
'date_inspected' => 'Date Inspected',
];
}
public static function getBuildingInspectionCategory($bid)
{
$buildingIcc = self::find()->andWhere(['is_status'=>0, 'building_id'=>$bid]);
return $buildingIcc;
}
public function getInspectionInspector()
{
return $this->hasOne(Inspector::className(), ['company_id' => 'inspector_id']);
}
public function getInspectionBuilding()
{
return $this->hasOne(Building::className(), ['building_id' => 'building_id']);
}
public static function getInspectionView($inspector=-1,$appraisal=-1)
{
$conection=Yii::$app()->db;
}
public static function getRatingScale()
{
$conection=Yii::$app()->db;
$sql="select * from inspection_rating_scale";
$command=$conection->createCommand($sql);
$vapp=$command->queryAll();
return new ArrayDataProvider($vapp);
}
}
ScoredItem Model
public function getTariff()
{
return $this->hasOne(BuildingTariff::className(), ['tariff_id' => 'tariff_id']);
}
public function getBuildingTariff()
{
return $this->hasOne(BuildingTariff::className(), ['tariff_id' => 'tariff_id']);
}
public function getBuildingScoreditem($building_id)
{
// @todo Please modify the following code to remove attributes that should not be searched.
$conection=Yii::$app->db;
// return $vappcom;
$sql="select si.* from scored_item si join building b on (b.tariff_id=si.tariff_id and b.building_id=$building_id)";
$command=$conection->createCommand($sql);
$vappcom=$command->queryAll();
return $vappcom;
}
public static function getTariffScoredItem($tid)
{
$tariffSci = self::find()->andWhere(['tariff_id'=>$tid]);
return $tariffSci;
}
ScoredEquipment Model
public function getBuildingTariff()
{
return $this->hasOne(BuildingTariff::className(), ['tariff_id' => 'tariff_id']);
}
public function getBuildingScoredequipment($building_id)
{
// @todo Please modify the following code to remove attributes that should not be searched.
$conection=Yii::$app->db;
// return $vappcom;
$sql="select se.* from scored_equipment se join building b on (b.tariff_id=se.tariff_id and b.building_id=$building_id)";
$command=$conection->createCommand($sql);
$vappcom=$command->queryAll();
return $vappcom;
}
public static function getTariffScoredEquipment($tid)
{
$tariffSci = self::find()->andWhere(['tariff_id'=>$tid]);
return $tariffSci;
}
[b]
ScoreItemScore Model
[/b]
class ScoredItemScore extends \yii\db\ActiveRecord
{
/**
* @inheritdoc
*/
public static function tableName()
{
return 'scored_item_score';
}
/**
* @inheritdoc
*/
public function rules()
{
return [
[['building_id', 'bookinspection_id', 'item_id'], 'required'],
[['building_id', 'inspector_id', 'bookinspection_id', 'item_id', 'rating', 'building_rating'], 'integer'],
[['date_inspected', 'date_updated'], 'safe'],
[['scored_comment'], 'string', 'max' => 200]
];
}
/**
* @inheritdoc
*/
public function attributeLabels()
{
return [
'item_score_id' => 'Item Score',
'building_id' => 'Building',
'inspector_id' => 'Inspector',
'bookinspection_id' => 'Inspection Booking',
'item_id' => 'Item',
'scored_comment' => 'Scored Comment',
'rating' => 'Rating',
'date_inspected' => 'Date Inspected',
'date_updated' => 'Date Updated',
'building_rating' => 'Building Rating',
];
}
public static function getScore($building_id,$bip_id)
{
$conection=Yii::$app->db;
$sql="select irs.rating_text, sis.rating,sis.building_rating, si.item_name,si.item_id from scored_item si left join scored_item_score sis on (si.item_id=sis.item_id and sis.building_id=$building_id) join inspection_rating_scale irs on irs.rating_id=sis.rating where sis.building_id=$building_id and sis.bookinspection_id=$bip_id";
$command=$conection->createCommand($sql);
$vappcom=$command->queryAll();
return $vappcom;
}
ScoredEquipmentScore Model
<?php
namespace app\modules\inspection\models;
use Yii;
class ScoredEquipmentScore extends \yii\db\ActiveRecord
{
/**
* @inheritdoc
*/
public static function tableName()
{
return 'scored_equipment_score';
}
/**
* @inheritdoc
*/
public function rules()
{
return [
[['building_id', 'bookinspection_id', 'equipment_id'], 'required'],
[['building_id', 'inspector_id', 'bookinspection_id', 'equipment_id', 'rating', 'building_rating'], 'integer'],
[['date_inspected', 'date_updated'], 'safe'],
[['scored_comment'], 'string', 'max' => 200]
];
}
/**
* @inheritdoc
*/
public function attributeLabels()
{
return [
'equipment_score_id' => 'Equipment Score ID',
'building_id' => 'Building ID',
'inspector_id' => 'Inspector ID',
'bookinspection_id' => 'Bookinspection ID',
'equipment_id' => 'Equipment ID',
'scored_comment' => 'Scored Comment',
'rating' => 'Rating',
'date_inspected' => 'Date Inspected',
'date_updated' => 'Date Updated',
'building_rating' => 'Building Rating',
];
}
public static function getScore($building_id,$bip_id)
{
$conection=Yii::$app->db;
$sql="select irs.rating_text, ses.rating,ses.building_rating, se.equipment_category, se.equipment_sub_category, se.item_name,se.equipment_id from scored_equipment se left join scored_equipment_score ses on (se.equipment_id=ses.equipment_id and ses.building_id=$building_id) join inspection_rating_scale irs on irs.rating_id=ses.rating where ses.building_id=$building_id and ses.bookinspection_id=$bip_id";
$command=$conection->createCommand($sql);
$vappcom=$command->queryAll();
return $vappcom;
}
}
InspectionComment Model
<?php
namespace app\modules\inspection\models;
use Yii;
/**
* This is the model class for table "inspection_comment".
*
* @property integer $inspection_comment_id
* @property integer $building_id
* @property integer $bookinspection_id
* @property integer $inspector_id
* @property string $comment_supervisor
* @property string $equipment_comment
* @property string $item_comment
* @property string $consumer_comment
* @property string $comment_approver
*/
class InspectionComment extends \yii\db\ActiveRecord
{
/**
* @inheritdoc
*/
public static function tableName()
{
return 'inspection_comment';
}
/**
* @inheritdoc
*/
public function rules()
{
return [
[['building_id', 'bookinspection_id', 'equipment_comment'], 'required'],
[['building_id', 'bookinspection_id', 'inspector_id'], 'integer'],
[['comment_supervisor', 'equipment_comment', 'item_comment', 'consumer_comment', 'comment_approver'], 'string']
];
}
/**
* @inheritdoc
*/
public function attributeLabels()
{
return [
'inspection_comment_id' => 'Inspection Comment ID',
'building_id' => 'Building ID',
'bookinspection_id' => 'Bookinspection ID',
'inspector_id' => 'Inspector ID',
'comment_supervisor' => 'Comment Supervisor',
'equipment_comment' => 'Equipment Comment',
'item_comment' => 'Item Comment',
'consumer_comment' => 'Consumer Comment',
'comment_approver' => 'Comment Approver',
];
}
}
What’s causing this error and how do I resolve it.
Unknown Property – yii\base\UnknownPropertyException
Setting unknown property: yii\db\ActiveQuery::item_id
Please help me out.