从不同的控制器插入 yii2
Insert in yii2 from different controller
我想在 table 中插入数据。
像这样尝试但它不起作用。
$sql = $queryBuilder->insert(' HRMS_candidateEducation', [
'HRMS_candidateEducationCandidateID' => $candidateID,
'HRMS_candidateEducationDegree' => $data['Degree'.$i],
'HRMS_candidateEducationUniversity' => $data['University'.$i],
'HRMS_candidateEducationCollege' => $data['College'.$i],
'HRMS_candidateEducationYear' => $data['Specilization'.$i],
'HRMS_candidateEducationSpecilization' => $data['Specilization'.$i],
], $params);
哪里不对?
使用
use yii\db\QueryBuilder;
use app\models\CandidateEducation;
这个函数似乎只创建了 SQL 语句 see doc
insert() Creates an INSERT command
为了执行命令,我认为你应该尝试这种方式
Yii::$app->db->createCommand()->
insert(' HRMS_candidateEducation', [
'HRMS_candidateEducationCandidateID' => $candidateID,
'HRMS_candidateEducationDegree' => $data['Degree'.$i],
'HRMS_candidateEducationUniversity' => $data['University'.$i],
'HRMS_candidateEducationCollege' => $data['College'.$i],
'HRMS_candidateEducationYear' => $data['Specilization'.$i],
'HRMS_candidateEducationSpecilization' => $data['Specilization'.$i],
], $params)->
execute();
我找到了另一个解决我问题的方法。
这就是我所做的。按照这个 link.
public function actionCreate()
{
$a=new A;
$b=new B;
if(isset($_POST['A'], $_POST['B']))
{
// populate input data to $a and $b
$a->attributes=$_POST['A'];
$b->attributes=$_POST['B'];
// validate BOTH $a and $b
$valid=$a->validate();
$valid=$b->validate() && $valid;
if($valid)
{
// use false parameter to disable validation
$a->save(false);
$b->save(false);
// ...redirect to another page
}
}
$this->render('create', array(
'a'=>$a,
'b'=>$b,
));
}
我想在 table 中插入数据。
像这样尝试但它不起作用。
$sql = $queryBuilder->insert(' HRMS_candidateEducation', [
'HRMS_candidateEducationCandidateID' => $candidateID,
'HRMS_candidateEducationDegree' => $data['Degree'.$i],
'HRMS_candidateEducationUniversity' => $data['University'.$i],
'HRMS_candidateEducationCollege' => $data['College'.$i],
'HRMS_candidateEducationYear' => $data['Specilization'.$i],
'HRMS_candidateEducationSpecilization' => $data['Specilization'.$i],
], $params);
哪里不对?
使用
use yii\db\QueryBuilder;
use app\models\CandidateEducation;
这个函数似乎只创建了 SQL 语句 see doc
insert() Creates an INSERT command
为了执行命令,我认为你应该尝试这种方式
Yii::$app->db->createCommand()->
insert(' HRMS_candidateEducation', [
'HRMS_candidateEducationCandidateID' => $candidateID,
'HRMS_candidateEducationDegree' => $data['Degree'.$i],
'HRMS_candidateEducationUniversity' => $data['University'.$i],
'HRMS_candidateEducationCollege' => $data['College'.$i],
'HRMS_candidateEducationYear' => $data['Specilization'.$i],
'HRMS_candidateEducationSpecilization' => $data['Specilization'.$i],
], $params)->
execute();
我找到了另一个解决我问题的方法。
这就是我所做的。按照这个 link.
public function actionCreate()
{
$a=new A;
$b=new B;
if(isset($_POST['A'], $_POST['B']))
{
// populate input data to $a and $b
$a->attributes=$_POST['A'];
$b->attributes=$_POST['B'];
// validate BOTH $a and $b
$valid=$a->validate();
$valid=$b->validate() && $valid;
if($valid)
{
// use false parameter to disable validation
$a->save(false);
$b->save(false);
// ...redirect to another page
}
}
$this->render('create', array(
'a'=>$a,
'b'=>$b,
));
}