2012-11-14 45 views
0

我試圖對opencart中的註冊過程進行修改。我已經在視圖中修改的形式和的值被髮布到我在其中增加了一些代碼來處理我的新字段中的帳戶/ customer.php模型,如下所示:無法向opencart添加新模型

/* add children and links to product categories */ 
    $this->load->model('account/children'); 
    //loop childrens names to use key for remaining info 
    foreach($data['children-name'] as $key=>$name){ 
     //re-assign data and purify 
     $child['name'] = mysql_real_escape_string($name); 
     $child['surname'] = mysql_real_escape_string($data['children-surname'][$key]); 
     $child['gender'] = mysql_real_escape_string($data['children-gender'][$key]); 
     $child['dob'] = mysql_real_escape_string($data['children-dob'][$key]); 
     $child['school'] = mysql_real_escape_string($data['children-school'][$key]); 
     $child['unit'] = mysql_real_escape_string($data['children-unit'][$key]); 
     $child['height'] = mysql_real_escape_string($data['children-height'][$key]); 
     $child['chest'] = mysql_real_escape_string($data['children-chest'][$key]); 
     $child['waist'] = mysql_real_escape_string($data['children-waist'][$key]); 
     $child['waistToKnee'] = mysql_real_escape_string($data['children-waist-to-knee'][$key]); 
     $child['insideLeg'] = mysql_real_escape_string($data['children-inside-leg'][$key]); 
     $child['shoeSize'] = mysql_real_escape_string($data['children-shoe-size'][$key]); 
     $child['customerId'] = $customer_id; 

     //update/create child record 
     $this->model_account_children->addChild($child); 
    } 
    /* end add children and links to product categories */ 

我然後創建相對模型在賬戶/ children.php文件中有如下代碼:

class ModelAccountChildren extends Model { 
    public function addChild($data) { 
     //create other fields not in $data 
     $lastUpdated = date('Y-m-d h:i:s'); 
     $childCat = getChildCategory($data['school']); 
     $dob = date('Y-m-d h:i:s', $date['dob']); 
     if($data['gender'] == 'm'){ 
      $data['gender'] = 'Male'; 
     }else{ 
      $data['gender'] = 'Female'; 
     } 
     echo "INSERT INTO " . DB_PREFIX . "customer_children (customer_id, child_name, child_surname, child_gender, child_dob, category_id, child_school, child_unit, child_height, child_chest, child_waist, child_waist_to_knee, child_inside_leg, child_shoe_size, child_last_updated) VALUES (".$data['customerId'].", '".$data['name']."', '".$data['surname']."', '".$data['gender']."', '".$dob."', ".$childCat['category_id'].", '".$data['school']."', '".$data['unit']."', '".$data['unit']."', '".$data['height']."', '".$data['chest']."', '".$data['waist']."', '".$data['waistToKnee']."', '".$data['insideLeg']."', '".$data['shoeSize']."', '".$lastUpdated."')"; 
     //perform insert 
     $this->db->query("INSERT INTO " . DB_PREFIX . "customer_children (customer_id, child_name, child_surname, child_gender, child_dob, category_id, child_school, child_unit, child_height, child_chest, child_waist, child_waist_to_knee, child_inside_leg, child_shoe_size, child_last_updated) VALUES (".$data['customerId'].", '".$data['name']."', '".$data['surname']."', '".$data['gender']."', '".$dob."', ".$childCat['category_id'].", '".$data['school']."', '".$data['unit']."', '".$data['unit']."', '".$data['height']."', '".$data['chest']."', '".$data['waist']."', '".$data['waistToKnee']."', '".$data['insideLeg']."', '".$data['shoeSize']."', '".$lastUpdated."')"); 
    } 

    public function updateChild($data) { 

    } 

    public function getChildCategory($childSchoolStr){ 
     $query = $this->db->query("SELECT * FROM " . DB_PREFIX . "category_description WHERE name LIKE '" . $childSchoolStr . "'"); 

     return $query->row; 
    } 
} 

出於某種原因,該腳本不會在該點獲得進入新的模式,我把它叫做模型/帳號/ customer.php上line:

$this->load->model('account/children'); 

我做錯了什麼?

回答

0

這對我來說似乎是正確的。你可以在模型中使用它。你使用vqmod嗎?嘗試刪除緩存文件。 也許給你的模型添加一個測試函數,看你可以調用它。 你得到的錯誤是什麼?

+0

忘了vqcache文件夾,但如果是這樣的話,那麼馬特的不使用最新版本,因爲這可能是問題並不是必需的 –

0

你有沒有把文件放在catalog/model/account/children.php?如果是這樣,你會得到任何有助於調試的錯誤消息嗎?另外,當你運行代碼時,你確定$data['children-name']包含數據嗎?

1

解決了它的問題。

$childCat = getChildCategory($data['school']); 

位腦流逝,上面的行應該是:

$childCat = $this->getChildCategory($data['school']);