Cakephp isPut()保存逻辑

时间:2012-07-03 15:49:39

标签: cakephp cakephp-1.3

帮我修复isPut或isPost用于保存逻辑,在下面的代码中我可以查看from中的数据,但是当我试图保存它不工作时,我试过ispost和isput逻辑两者都不工作。我认为问题在于控制器部分没有视图     这是我的形式的视图,

<?php 

    echo $this->Form->create('Role',array('url'=>array('controller'=>'Organisations','action' => 'edit_profile'),'id' => 'role'));
    echo $this->Form->input('RoleLanguage.rolename',array('label'=>'Profile Name:','id'=>'rolename'));

    $options = array('A' => 'Approve', 'P' => 'Pending', 'D' => 'Delete');
    echo $this->Form->input('Role.status', array(
    'options'=>$options,
    'empty' => false,
    'label'=>'Status',
     'style'=>'width:100px',

    'id'=>'status'
    ));
    $id= array('value' => $id);
    //print_r($id);die();
    echo $this->Form->hidden('rle_id', $id);
    echo "<br>";
    $options = array('R' => 'Role', 'P' => 'Position', 'T' => 'Team','C'=>'Core Strategic Profile');

     echo $this->Form->input('Role.type', array(
    'options'=>$options,
    'empty' => false,
    'label'=>'Type of Job Profile:',
     'style'=>'width:100px',

    'id'=>'type'
    ));
      echo "<br>";
      echo $this->Form->input('RoleLanguage.external_document_URL',array('label'=>'External Document URL:','id'=>'external_document_URL','type'=>'text'));
      echo "<br>";
      echo $this->Form->input('RoleLanguage.description', array('style'=>'width:420px','rows' => '5', 'cols' => '5','label'=>'Description','id'=>'description'));

    ?>

这是控制器逻辑

function edit_profile($id=NULL)
{
     $this->layout='Ajax'; 

         //print_r($id);die();
         $this->set('id',$id); 
                $this->Role->recursive = 0;     
                $this->Role->id = $id;
                $language = $this->getLanguage('content');
                $this->Role->unBindModel(array("hasMany" => array('RoleLanguage')));
                $this->Role->bindModel(array("hasOne" => array('RoleLanguage'=> array('foreignKey' => 'rle_id', 'className' => 'RoleLanguage', 'type' => 'INNER', 'conditions' => array('RoleLanguage.language' => $language)))));

                $this->data = $this->Role->read();

                //print_r($this->data);die();

     if ($this->RequestHandler->isPut())
            {
            $this->data=array(null);
            $this->autoRender = false;
            $acc_id = $this->activeUser['User']['acc_id'];

            $this->data['Role']['acc_id'] = $acc_id;

            unset($this->Role->RoleLanguage->validate['rle_id']);
             print_r($this->data);die();
            $this->Role->saveAll($this->data);
            }
}

我在另一个视图中序列化数据,我在那里调用qbove视图代码

$.ajax({
                                                    type: 'Put',
                                                    url: $('#role').attr('action'),
                                                    data: $('#role').serialize()

1 个答案:

答案 0 :(得分:0)

当您调用saveAll时,可能是数据未通过模型验证测试。 您是否尝试过打印$ this-&gt; Role-&gt; invalidFields()以查看是否有任何内容?