2013-12-12 6 views
2

방금 ​​CakePHP를 배우기 시작했고 공식 블로그 튜토리얼을 시작했습니다. 지금까지는 그렇게 좋았지 만 뷰에서나 컨트롤러에서이 필드를 가리키는 라인이 없기 때문에 현재와 수정 된 시간이 db로 저장되는 방법을 얻지 못하고있다. 여기 CakePHP의 블로그 자습서에서 현재 시간과 수정 시간은 어떻게 저장됩니까?

은 추가에 대한 PostsController.php 코드 :

public function add() 
    { 
     if($this->request->is('post')) 
     { 
      $this->Post->create(); 
      if($this->Post->save($this->request->data)) 
      { 
       $this->Session->setFlash(__('Your post has been saved.')); 
       return $this->redirect(array('action' => 'index')); 
      } 
      else 
      { 
       $this->Session->setFlash(__('Unable to add your post.')); 
      } 
     } 
    } 

그리고 여기 add.ctp보기 코드 :

<!-- File: /app/View/Posts/add.ctp --> 
<?php echo $this->Html->link('Home', 'index/home'); ?> 
<h1>Add Posts</h1> 
<?php 
echo $this->Form->create('Post'); 
echo $this->Form->input('title'); 
echo $this->Form->input('body', array('rows' => '3')); 
echo $this->Form->submit('Add Post', array('name' => 'add_post')); 
//echo $this->Form->end('Save Post'); 
?> 

그래서 사람이 현재 시간을 절약하는 라인을 말씀 해주십시오? 도와 줘서 고마워.

답변

2

이름이 'created'및 'modified'인 필드를 확인하고 값을 자동으로 업데이트하는 기본 Cake 상위 모델에는 숨겨진 기능이 있습니다.

/lib/Cake/Model/Model.php에서 'modified'문자열을 검색하면 이에 대한 많은 참조가 표시됩니다.

내가 얼마나 잘 문서화되었는지 잘 모르겠지만, 나는 펑키 절약 행동을 디버깅하는 동안 그것을 발견했습니다.

내 시스템에서이 작은 보석을 발견하기 전에 'created_at'및 'modified_at'필드에 정착했습니다.

편집 :이 여기에 설명되어 있습니다 : http://book.cakephp.org/2.0/en/models/saving-your-data.html#using-created-and-modified

+0

당신에게 벤 감사드립니다. 너는 내 의심에 정확하게 대답했다. 다시 한번 감사드립니다. –

0

AppModel.php에 save() {} 및 UpdateAll() {} 함수가 있는지 확인하십시오. 다음으로 mysql에서 생성되고 수정 된 필드의 데이터 유형을 확인하십시오. 그런 다음 질문을보다 명확하게 수정하십시오.