2016-07-18 1 views
0

나는 cakephp, UsersController 및 DatasController에 데이터베이스에 두 개의 테이블과 두 개의 컨트롤러가 있습니다. 나는 인증 된 사용자의 ID를 datas 테이블에 저장하고 싶다. 여기 는하지만 내가 잊지 그 사람이 일도 correctly.Are 작동하지 않습니다 ...cakephp에있는 데이터베이스에 변수를 저장하는 방법은 무엇입니까?

class DatasController extends AppController{ 
    public function adddam(){ 
    $uid=$this->Auth->user('id'); 
    $datas = $this->Datas->newEntity(); 
    if ($this->request->is('post')) { 
     $datas = $this->Datas->newEntity(); 
     $this->request->data['user_id'] =$uid; 
     $datas = $this->Datas->patchEntity($datas, $this->request->data); 
     $this->Datas->save($datas); 
     } 
    } 
} 

내 코드?

답변

0

난 당신이 다음 추가를 위해이 구조를 시도 CakePhp3을 사용하고 있는지 수집 'Datas'

class DatasController extends AppController { 

    public function adddam() { 

     $uid = $this->Auth->User()['id']; 

     $datas = $this->Datas->newEntity(); 

     if ($this->request->is('post')) { 

      $datas = $this->Datas->patchEntity($datas, $this->request->data); 

      $datas['user_id'] = $uid; 

      if($this->Datas->save($datas)) 
      { 
       $this->Flash->success(__('The datas has been saved.')); 

       return $this->redirect(['action' => 'adddam']); //Redirect when you want 

      } else { 

       $this->Flash->error(__('The datas could not be saved. Please, try again.')); 

      } 

     } 

     $this->set(compact('datas')); 
     $this->set('_serialize', ['datas']); 
    } 
} 
+0

은 내가하지만 user_id를 제외하고 테이블에 삽입 된 모든 필드 테스트를 작동하지 않습니다. : ( – zahraMHD

+0

'debug' ** $ uid **를 시도하여 값이 있는지 알아 보거나'$ datas [ 'user_id'] = 1'을 입력하고 테이블에 user_id 필드가 있는지 확인하고 결과. –

+0

print_r ($ data)을 사용하고 App \ Model \ Entity \ Damage 오브젝트 ([floor] => 1 [place] => 1 [설명] => abc [날짜] => Cake \ I18n \ FrozenTime 객체 ([time] => 2016-07-20T08 : 32 : 37 + 00 : 00 [timezone] => UTC [fixedNowTime] =>) [user_id] => 5 [[new]] => 1 [[accessible ]] => 1 [날짜] => 1 [user_id] => 1 (장소) => 1 [설명] => > 1) – zahraMHD

관련 문제