2010-12-12 6 views
0

저는 테이블에 던져 넣을 기본값을 생성 한 양식으로 cakephp 앱을 만듭니다 (지금까지는 이것이 해결 될 때까지 자리 표시 자 데이터입니다). 양식 작동, 레코드를 잘 삽입합니다. 그러나 어떤 이유로 폼이 기본값의 첫 번째 문자 만 사용하고 있습니다. 예를 들어, "Title"은 "t"형식의 문자 만 가지고 있고, "Content"는 "c"등만 있습니다.cakephp 첫 번째 문자 만 사용하는 기본값

내가 pr ($ this-> data) 일 때 모든 자리 표시 자 데이터가 있습니다. . 나는 그것들을 편집하고 잘 저장된 텍스트를 추가 할 수 있으므로 양식 필드 길이 문제가 아닙니다. $ this-> data와 $ this-> Form-> input 사이의 어느 곳에서든지, 기본값은 잘려 가고 있습니다. 이 문제를 어디서부터 해결해야할지 모르겠습니다. 나는 여기서 아무것도 찾을 수 없었고, 나는이 문제에 대한 한 가지 언급을 검색하여 발견 할 수 있었지만 해결되지 않았다.

CakePHP의 1.3.6, PHP 5.3.3, 리눅스

도와

감사 홍보의

결과 ($ this-> 데이터) :

Array 
(
    [title] => title 
    [content] => content 
    [media_url] => media_url 
) 

보기 :

<? pr($this->data); ?> 

<div class="generators form"> 
<?php echo $this->Form->create('Generator');?> 
    <fieldset> 
     <legend>Create New Post</legend> 
    <?php 
     echo $this->Form->input('title'); 
     echo $this->Form->input('content'); 
     echo $this->Form->input('publish_date'); 
     echo $this->Form->input('media_url'); 

    ?> 
    </fieldset> 
<?php echo $this->Form->end('Create Post');?> 
</div> 

컨트롤러 :

<?php 
class GeneratorsController extends AppController { 

    var $name = 'Generators'; 

    function posts() 
    { 
     // save the post 
     if (!empty($this->data)) { 
      $this->Generator->create(); 
      if ($this->Generator->save($this->data)) { 
       $this->Session->setFlash(__('The post has been created', true)); 
       $this->redirect(array('action' => 'posts')); 


       // TODO: call posting app 


      } else { 
       $this->Session->setFlash(__('There was a problem. Please, try again.', true)); 
      } 
     } 
     else 
     { 
       // create post 
       $this->data['title'] = "title"; 
       $this->data['content'] = "content"; 
       //$this->data['publish_date'] = ""; 
       $this->data['media_url'] = "media_url"; 


     } 
    } 
} 
?> 

모델 : 다음 줄

<?php 
class Generator extends AppModel { 
    var $name = 'Generator'; 
    var $displayField = 'title'; 
} 
?> 

답변

1

는 :

<?php echo $this->Form->create('Generator'); ?> 

첫번째 파라미터 형태가 속하는 모델을 나타낸다. 이렇게하면 필드 이름의 서식이 data[Generator][field_name]이됩니다. 따라서 데이터를 설정하는 동안 다음을 처리해야합니다.

function posts() { 
    if (!empty($this->data)) { 
     ... 
    } else { 
     $this->data = array(
      'Generator' => array(
       'title' => 'title', 
       'content' => 'content', 
       'media_url' => 'media_url' 
      ) 
     ); 
    } 
} 

이 기능이 작동하는지 알려주세요.

+0

빙고, 빠른 빠른 응답을 주셔서 감사합니다. 그 실수를 다시하지 않겠습니다 –

+0

@ 존 - 다행을 알았습니다 :) – RabidFire

관련 문제