Piyush
Piyush

Reputation: 4007

Insert in yii2 from different controller

I am tring to insert data in a table.

trying like this but it`s not working.

$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);

What is incorrect?

using

use yii\db\QueryBuilder;
use app\models\CandidateEducation;

Upvotes: 3

Views: 721

Answers (2)

Piyush
Piyush

Reputation: 4007

I found another solution to my question.

This is what i did. by following this 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,
));

}

Upvotes: 0

ScaisEdge
ScaisEdge

Reputation: 133370

This function seem only create the SQL statement see doc

insert() Creates an INSERT command

for executing the command i think you shoul try this way

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();

Upvotes: 4

Related Questions