2015-01-09 7 views
0

양식을 통해 제출하는 데이터에 따라 사용자 user_id을 저장하고 싶습니다. 이것은 내 컨트롤러에 있습니다ZF2에 양식을 제출할 때 로그인 한 사용자의 user_id를 저장하십시오.

컨트롤러 :

$request = $this->getRequest(); 
     if ($request->isPost()) { 
      $testing = new Testing(); 
      $form->setInputFilter($testing->getInputFilter()); 
      $form->setData($request->getPost()); 

      if ($form->isValid()) { 
       $this->zfcUserAuthentication()->hasIdentity(); // user logged in? 
       $user = $this->zfcUserAuthentication()->getIdentity(); //get identity 
       $user_id = $user->getID(); //gets the user-id, output: number, eg. 18 



       $testing->exchangeArray($form->getData()); 
       $this->getTestingTable()->saveTesting($testing); 

       // Redirect to iaps test 
       return $this->redirect()->toUrl('/testing/iaps4'); 
      } 
     } 

     return array('form' => $form); 


    } 

I 출력이 평범하고 18 간단합니다 print_r($user_id)합니다. 단지 USER_ID에 대한

  • 별도의 exchangeArray : 여기 작동하지 않았다 몇 가지, 가장 유망한 사람을 시도했다. 불행히도 은 데이터 형식을 따라 데이터베이스에 빈 항목 만 생성합니다.
  • 을 user_id 데이터와 결합합니다. 여기서도 분명히 성공하지 못합니다.

것은 내가 좀 내가 필요한 게 뭔지 알아요이며, 다음 $user->getID();에서 18 내게 도움이되지 않습니다 일반 출력, 내가 제출 한 데이터에 따라 데이터베이스에 user_id 열이 번호를 asign해야하기 때문에 ID가 user_id 인 사용자

나는 젠드 프레임 워크 2.3.3를 사용하고, ZF-가공/ZfcBase 0.0.1 및 ZF-커먼즈/ZfcUser 1.2.2 당신은 하나의 배열에 양식의 데이터로 user_id를 병합 할 수 있습니다

답변

1

array_merge :

$testing->exchangeArray(array_merge(
    $form->getData(), 
    ['user_id' => $user->getID()] 
)); 
+0

감사합니다. array_merge는 황금색입니다! 첫 번째 답변에 축하드립니다! –