2015-01-27 11 views
0

4 가지 모델에 데이터를 저장하는 작업이 있습니다. 여기 내 컨트롤러 코드가 있습니다. 데이터를 저장하는 데 오류가 발생합니다. 데이터를 저장 한 후이 동작이 지정된 URL로 리디렉션되지 않습니다. 데이터가 저장 될 때 사용되는 동일한 작업의 빈 페이지가 표시됩니다. 이 문제는 실제 서버에서만 발생합니다. 내 로컬 사본에 그냥 잘 작동합니다.Cakephp 컨트롤러 동작이 라이브 서버에서 리디렉션하지 않습니다.

if ($this->request->is('post')) { 
      //First upload user pic 
      if ($this->request->data['FacilityResident']['pic']['name'] != NULL) { 
       $pic = $this->request->data['FacilityResident']['pic']['tmp_name']; 
       if (!is_dir(WWW_ROOT . 'img' . DS . 'residents' . DS)) { 
        mkdir(WWW_ROOT . 'img' . DS . 'residents' . DS); 
        chmod(WWW_ROOT . 'img' . DS . 'residents' . DS, 0777); 
       } 
       $uniq = mt_rand(); 
       move_uploaded_file($pic, WWW_ROOT . 'img' . DS . 'residents' . DS . $this->request->data['FacilityResident']['pic']['name']); 
       $this->request->data['FacilityResident']['avatar'] = DS . 'residents' . DS . $this->request->data['FacilityResident']['pic']['name']; 
       unset($this->request->data['FacilityResident']['pic']); 
      } 

      $this->request->data['FacilityResident']['facilities_id'] = $this->Session->read('urlparam.facilityId'); 
      $this->FacilityResident->save($this->request->data['FacilityResident']); 
      $residentId = $this->FacilityResident->getLastInsertID(); 
      if (!empty($this->request->data['FacilityResidentDietary']['diet'])) { 
       $dietData = implode(',', $this->request->data['FacilityResidentDietary']['diet']); 
       unset($this->request->data['FacilityResidentDietary']['diet']); 
       $this->request->data['FacilityResidentDietary']['diet'] = $dietData; 
      } 
      $this->request->data['FacilityResidentDietary']['facility_residents_id'] = $residentId; 
      $this->FacilityResidentDietary->save($this->request->data['FacilityResidentDietary']); 
      $this->request->data['ResidentMealschedule']['facility_residents_id'] = $residentId; 
      $this->ResidentMealschedule->save($this->request->data['ResidentMealschedule']); 
      $residentMealSchedultId = $this->ResidentMealschedule->getLastInsertID(); 
      foreach ($this->request->data['Mealdetail'] as $key => $value) { 
       if ($key == 'Bread') { 
        $value[0]['attribute_four'] = implode(',', array_filter($value[0]['attribute_four'])); 
       } 
       foreach ($value as $val) { 
        $this->Mealdetail->saveAll($val); 
        $data['Mealschedule']['meal_types_id'] = 1; 
        $data['Mealschedule']['resident_mealschedule_id'] = $residentMealSchedultId; 
        $data['Mealschedule']['mealdetails_id'] = $this->Mealdetail->getLastInsertID(); 
        $this->Mealschedule->saveAll($data); 
       } 
       unset($data); 
       unset($val); 
      } 
      $i = 1; 
      foreach ($this->request->data['ResidentMealMeta'] as $key => $val) { 
       $data['ResidentMealMeta'][$i]['resident_mealschedule_id'] = $residentMealSchedultId; 
       $data['ResidentMealMeta'][$i]['meal_value'] = $key; 
       $data['ResidentMealMeta'][$i]['meal_option'] = $val; 
       $i++; 
      } 
      if (!empty($this->request->data['ResidentTray']['tray'][0])) { 
       $j = count($data['ResidentMealMeta']) + 1; 
       $data['ResidentMealMeta'][$j]['meal_value'] = 'tray'; 
       $data['ResidentMealMeta'][$j]['resident_mealschedule_id'] = $residentMealSchedultId; 
       $data['ResidentMealMeta'][$j]['meal_option'] = implode(',', $this->request->data['ResidentTray']['tray']); 
      } 
      unset($this->request->data['ResidentMealMeta']); 
      unset($this->request->data['ResidentTray']); 
      if ($this->ResidentMealMeta->saveAll($data['ResidentMealMeta'])) { 
       $this->Session->setFlash('New resident added', 'flash', array('alert' => 'success')); 
       if(isset($url)){ 
        unset($url); 
       } 
       $url = Router::url(array(
          'controller' => 'residents', 
          'action' => 'resident_list', 
          '?' => array('facility_name' => $this->Session->read('urlparam.facilityName'), 'facility_id' => $this->Session->read('urlparam.facilityId')) 
       )); 
       $this->redirect($url); 
      } 
     } 

여기서 어떤 문제가 발생하는지 알려주시겠습니까? 또한 관련 모델을 통해 데이터를 저장하려고 시도했지만 효과가 없습니다. , 난 당신이 만드는 어떤 프로젝트에 당신이 모든 컨트롤러에에 액세스 할 수 있습니다 원인, 때의 세션 값에 대한 인수를 통과하지하는 것이 좋습니다 그러나

Router::redirect(
    '/controller_where_you_re_saving_data/*', 
    array('controller' => 'residents', 'action' => 'resident_list'), 
    // view action expects $id as an argument 
    array('facility_name' => $this->Session->read('url.facilityName')) 
); 

:

답변

관련 문제