2013-02-12 3 views
2

나는 새로운 케이크의 PHP developer.I 여러 레코드를 삽입하려고 생각하지만 난 테이블 구조는 아래와 같습니다 cant.My 삽입하는 방법 : 테이블 이름 : 에이전트여러 레코드

 
============================================== 
id | Contact | Name | email_add | Address 
============================================== 

컨트롤러 코드를 :

public function send_money() 
    { 
     $this->layout='agent'; 
     $this->Agent->create(); 
     $this->Agent->set($this->data); 

     if(empty($this->data) == false) 
      { 
        if($this->Agent->save($this->data)) 
        { 
         $this->Session->setFlash('Information Added Successfully.'); 
         $this->redirect('send_money'); 
        } 

      } 
      else 
      { 
       $this->set('errors', $this->Agent->invalidFields());  
      } 
    } 

모델 코드는 다음과 같습니다?

<?php 
App::uses('AppModel', 'Model'); 
/** 
* Admin Login Model 
* 
*/ 
class Agent extends AppModel 
{ 
    public $name='Agent'; 
    public $usetables='agents'; 

    public $validate = array(

    'contact' => array(
    'contact_not_empty' => array(
     'rule' => 'notEmpty', 
     'message' => 'Please Give Contact No', 
     'last' => true 
     ), 
    ), 

     'name' =>array(
     'rule' => 'notEmpty', // or: array('ruleName', 'param1', 'param2' ...) 
     'allowEmpty' => false, 
     'message' => 'Please Enter Name.' 
    ), 

    'email_add' => array(
      'email_add' => array(
      'rule' => 'email', 
      'allowEmpty' => true, 
      'message' => 'Please Enter Valid Email', 
      'last' => true 
    )), 



    ); 

} 

>

이 코드가있는 레코드를 삽입 할 수 없습니다. 어떻게해야합니까?

+0

나는 agents라는 이름의 테이블이 하나뿐입니다.이 테이블에 한 번에 두 번 레코드를 저장하고 싶습니다. 어떻게해야합니까? – amit

답변

3

모든 것을 설명해 드리겠습니다.

먼저 html 양식은 다음과 같아야합니다.

<?php echo $this->Form->create('User'); ?> 
<tr> 
    <td> 
     <?php 
      echo $this->Form->input('User.0.address',array 
      (
       'div' => null, 
       'label' => false, 
       'class' => 'span required' 
      )); 
     ?> 

     <?php 
      echo $this->Form->input('User.1.address',array 
      (
       'div' => null, 
       'label' => false, 
       'class' => 'span required' 
      )); 
     ?> 

     <?php 
      echo $this->Form->input('User.2.address',array 
      (
       'div' => null, 
       'label' => false, 
       'class' => 'span required' 
      )); 
     ?> 
    </td> 
    <td> 
     <input type="submit" value="Add" > 
    </td> 
</tr> 
<?php echo $this->Form->end(); ?>

당신이 배열이 CakePHP의 규칙 그대로 입력 필드를 구문 분석 위와 같이 당신이 그것을 정의해야 CakePHP의를 사용하여 동시에 많은 레코드를 저장 볼 수 있듯이.

나는 등 User.0.address for first array element

User.1.address for second array element

User.2.address for third array element 등을 의미한다.

지금.

컨트롤러 파일.

<?php 
    function add() 
    { 
     $this->User->saveAll($this->data['User']); 
    }

그리고 여기에도 동시에 여러 개의 레코드를 저장합니다.

난 그냥 당신이해야 할 일은 어떻게해야 힌트를 귀하의 필요에 따라 설정됩니다.

물어 주시기 바랍니다 최고의 행운의

...

건배 ... ...

+0

고맙습니다. 일하고 있습니다. 여러 reord를 삽입 할 수있게되었습니다. 그러나 필드 유효성 검사를위한 내 모델 코드가 작동하지 않습니다. 유효성 확인을위한 모델 코드가 무엇인지 말해 주시겠습니까? .... – amit

+0

$ this-> user-> saveAll ($ this-> data [ 'User'], array ('validate'=> '전용')); –

+0

$ this-> Agent-> saveAll ($ this-> data [ 'Agent'], array ('validate'=> 'only'))); 이 코드를 시도했지만 작동하지 않습니다. 단지 내 모델에 따라 필드를 확인하고 싶습니다 .... – amit

3

저장을 제외하고 쿼리에서이 시려면를() 시도는,이

if($this->Agent->saveall($this->data)) 

가 작동 알려줘 도움이되기를 바랍니다.

+0

나는 그것을 전에 시도했다.그것은 작동하지 않는 마지막 record.its 만 넣었습니다. – amit

1

: 나는이

php echo $this->Form->create('Agents', array('action' => 'send_money'));?> 

를 교체해야한다고 생각

php echo $this->Form->create('Agent', array('action' => 'send_money'));?> 

을 사용하고 save 대신 saveall()을 사용하십시오.