我有一张桌子SubjectTutor,有id
,subject_id
,tutor_id
,province_id
,city_id
,school_id
,state_private
和status
。我想将数据插入到SubjectTutor表中,但错误是
province_id
、city_id
、school_id
和state_private
不会保存到表SubjectTutor中,但是id
、subject_id
和tutor_id
将被保存。
这是控制器。我还设置了province_id
、city_id
、school_id
和state_private
值。
public function admin_add_pack($standard_id=null)
{
$this->loadModel('Plan');
$this->loadModel('SubjectTutor');
$this->loadModel('Standard');
$this->loadModel('Province');
$this->loadModel('City');
$this->loadModel('School');
$this->loadModel('User');
$standard_data = $this->Standard->find('first',array('conditions'=>array('Standard.id'=>$standard_id)));
$province_id = 32;
$city_id = 44;
$school_id = 1855;
$this->set('title_for_layout','Subject');
if(!empty($this->request->data))
{
if (!isset($this->request->params['_Token']['key']) || ($this->request->params['_Token']['key'] != $this->request->params['_Token']['key']))
{
$blackHoleCallback = $this->Security->blackHoleCallback;
$this->$blackHoleCallback();
}
//validate user data
$this->SubjectTutor->set($this->request->data['SubjectTutor']);
$this->SubjectTutor->setValidation('add');
if ($this->SubjectTutor->validates())
{
// $this->request->data['Subject']['user_id'] = $this->Auth->user('id');
$userdata = $this->request->data['SubjectTutor'];
$this->SubjectTutor->save($userdata,false);
$subject_tutor_id = $this->SubjectTutor->id;
$this->SubjectTutor->school_id = 1855;
$this->SubjectTutor->province_id = 32;
$this->SubjectTutor->city_id = 44;
$this->SubjectTutor->state_private = 1;
$this->Session->setFlash("Record has been added successfully", 'admin_flash_good');
$this->redirect(array('controller'=>'standards', 'action'=>'subject_list',$standard_id));
}
else
{
$this->Session->setFlash("Record has not been created", 'admin_flash_bad');
}
}
$tutors = $this->User->getStandardTutorList($standard_id);
$subjects = $this->Subject->getStandardSubjectList($standard_id);
$standards = $this->Standard->getStandardList();
$provinces = $this->Province->getProvinceList();
$cities = $this->City->getCityList();
$schools = $this->School->getSchoolList();
$this->set(compact('provinces'));
$this->set(compact('standards','standard_id','province_id','city_id','school_id','standard_data','tutors','subjects','provinces','cities','schools','tutor_id'));
}
这是ctp文件:
<div class="form-group">
<div class="col-sm-6">
<label for="exampleInputPassword1"> Select Tutor </label>
<?php echo($this->Form->input('SubjectTutor.tutor_id', array('options'=>$tutors,'div'=>false, 'label'=>false, "class" => "form-control",'empty'=>'Select Tutor')));?>
</div>
</div>
<div class="form-group">
<div class="col-sm-6">
<label for="exampleInputPassword1"> Select Standard </label>
<?php echo ($this->Form->input('Subject.standard_id2', array('options'=>$standards,"div"=>false,"default"=>$standard_id,"label"=>false,"class"=>"form-control",'disabled'=>true))); ?>
</div>
</div>
<div class="form-group">
<div class="col-sm-6">
<label for="exampleInputPassword1">Select Subject </label>
<?php echo ($this->Form->input("SubjectTutor.subject_id", array('empty'=>'--Select Subject--', 'options'=>$subjects,"div"=>false,"label"=>false,"class"=>"form-control",'disabled'=>false))); ?>
</div>
</div>
<div class="form-group">
<div class="col-sm-6">
<label for="exampleInputPassword1">Province </label>
<?php echo ($this->Form->input("SubjectTutor.province_id", array('empty'=>'--Select Province--', 'options'=>$provinces,"div"=>false,"default"=>$province_id,"label"=>false,"class"=>"form-control",'disabled'=>true))); ?>
</div>
</div>
<div class="form-group">
<div class="col-sm-6">
<label for="exampleInputPassword1">City </label>
<?php echo ($this->Form->input("SubjectTutor.city_id", array('empty'=>'--Select City--', 'options'=>$cities,"div"=>false,"default"=>$city_id,"label"=>false,"class"=>"form-control",'disabled'=>true))); ?>
</div>
</div>
<div class="form-group">
<div class="col-sm-6">
<label for="exampleInputPassword1">School </label>
<?php echo ($this->Form->input("SubjectTutor.school_id", array('empty'=>'--Select School--', 'options'=>$schools,"div"=>false,"default"=>$school_id,"label"=>false,"class"=>"form-control",'disabled'=>true))); ?>
</div>
</div>
发布于 2017-05-16 18:11:18
当对视图中的字段使用“禁用”选项时,该字段在保存表单数据时不会被设置。要么使用“readonly”选项,要么在保存之前在控制器中设置这些值(因为您不需要用户输入)。或者向用户显示值,而不假装他们有任何输入,并使用隐藏字段传递正确的数据。
https://stackoverflow.com/questions/43992156
复制相似问题