我有这样的事情:
public function actionCreate() {
$a = new Tblcompany;
$c = new Tblfunctioncontrol;
$transaction= Yii::app()->db->beginTransaction();
// Uncomment the following line if AJAX validation is needed
// $this->performAjaxValidation($model);
try {
if(isset($_POST['Tblcompany'])) {
$a->attributes=$_POST['Tblcompany'];
//}
if($a->save()){
//1st row
$c->company_code= $a->company_code;
$c->usergroup_code= 'Admin';
$c->function_code= 'M01-01-01';
$c->description= 'Vehicle Setup';
$c->hide_key= false;
$c->add_key= true;
$c->edit_key= true;
$c->delete_key= true;
$c->print_key= true;
现在,我还想为c
添加另一行 //2nd row
$c->company_code= $a->company_code;
$c->function_code= 'M01-01-02';
$c->description= 'Make Setup';
$c->hide_key= FALSE;
$c->add_key= TRUE;
$c->edit_key= True;
$c->delete_key= true;
$c->print_key= true;
所以,我想在这里为$ c包含两行。需要一些关于我该如何做的解释....
答案 0 :(得分:1)
使用两个数组来输入这种要求。
$arr1 = array("field_name" => "value","field_name" => "value");
$arr2 = array("field_name" => "value","field_name" => "value");
现在做这样的事情。
$model = new Model;
$model->attributes = $arr1;
$model->save();
$model = new Model;
$model->attributes = $arr2;
$model->save();
这将在没有for循环的情况下将两个值插入数据库。
答案 1 :(得分:0)
您正在做的是更改$c
引用的实体。您将使用第二行的值覆盖第一行的值。要创建第二行,只需为第二行创建一个新对象,如下所示:
//2nd row
$c= new Tblfunctioncontrol;
$c->company_code= $a->company_code;
$c->function_code= 'M01-01-02';
$c->description= 'Make Setup';
$c->hide_key= FALSE;
$c->add_key= TRUE;
$c->edit_key= True;
$c->delete_key= true;
$c->print_key= true;
$c->save();
我的代码中没有看到$c->save()
的来电。我猜你刚刚发布了吗?无论如何,你必须为你的第一个和第二个$c
打电话。