表单数据不保存,不更新多个表中的图像文件和文件名

时间:2014-03-13 11:55:29

标签: cakephp

在这个editdrprofile.ctp文件中没有检索性别字段值,当我点击保存在editprofile页面中的Drprofile链接时没有动作donne页面刷新没有图像上传没有改变

应用/控制器/ DashboardsController.php

 public function index() {
 $this-> loadModel('Drprofile');
  $this->set('variable', $this->Drprofile->find('all', array('conditions' => array('Drprofile.user_id' => $this->Auth->user('id')))));
}

public function editdrprofile($id = null) {
          $this-> loadModel('Drprofile');

    if (!$id) {
        throw new NotFoundException(__('Invalid post'));
    }

    $post = $this->Drprofile->findByuser_id($id);
    if (!$post) {
        throw new NotFoundException(__('Invalid post'));
    }

    if ($this->request->is(array('Drprofile', 'put'))) {
        $this->Drprofile->user_id = $id;


    //  $this->set('posts', $this->carrier->find('all'));
        if($this->request->is('post')){
             Configure::read();
     //   pr($this->data); 
            $this->Carrier->create();
            $filename = null;

if (
    !empty($this->request->data['Drprofile']['image']['tmp_name'])
    && is_uploaded_file($this->request->data['Drprofile']['image']['tmp_name'])
) {
    // Strip path information
    $filename = basename($this->request->data['Drprofile']['image']['name']); 
    move_uploaded_file(
        $this->data['Drprofile']['image']['tmp_name'],
        WWW_ROOT . DS . 'documents' . DS . $filename
    );
    //$this->data['Carrier']['Resume'] = $filename;
}

//pr($filename);
// Set the file-name only to save in the database
$this->request->data['Drprofile']['image'] = $filename;
pr($this->data);
if ($this->Drprofile->save($this->request->data)) {
   // ...
     /*if ($this->Carrier->save($this->request->data)) {
                 if ($this->Carrier->save($this->data)) {
                 */
                $this->Session->setFlash(__('Your Details has been saved.'));
                 return $this->redirect(array('action' => 'index'));
            } else {
                $this->Session->setFlash(__('Unable to add your Details'));
            }
            }


        /*pr_('$this->Drprofile->user_id = $id');
        if ($this->Drprofile->save($this->request->data)) {
            //$this->Drprofile->save($this->request->data);
            $this->Session->setFlash(__('Your post has been updated.'));


            return $this->redirect(array('action' => 'index'));

        }
        $this->Session->setFlash(__('Unable to update your post.'));*/

    }

    if (!$this->request->data) {
        $this->request->data = $post;
    }


    }

在模特中 应用/模型/ Drprofile.php

<?php class Drprofile extends AppModel {

 var $belongsTo = array(
    'User' => array(
        'className' => 'User',
        'foreignKey' => 'user_id',
        'conditions' => '',
        'fields' => '',
        'order' => ''
    )
);
}
?>
view / dashboards / index.ctp

<?php 
 foreach ($variable as $post1):
 ?>

<table>

<tr><h3>Doctor Profile</h3></tr>
<tr> <td>TTTTTTTTTTTTTTTTTTTTTTTTTTTT</td> <td><table>

<tr><td>Name</td><td><?php echo $post1['User']['fullname'];?></td></tr>
<tr><td>Email</td><td><?php echo $post1['User']['email'];?></td></tr>
<tr><td>Mobile</td><td><?php echo $post1['User']['contactnumber'];?></td></tr>
<tr><td>Gender</td><td><?php echo $post1['User']['gender'];?></td></tr>
<tr><td>D.O.b</td><td><?php echo $post1['Drprofile']['dob'];?></td></tr>
<tr><td>Experience</td><td><?php echo $post1['Drprofile']['exp'];?></td></tr>


</table></td></tr>


</table>
<?php

                echo $this->Html->link(
                    'Edit Profile', array('action' => 'editdrprofile', $post1['Drprofile']['user_id'])
                );
            ?> 
 <?php 

   endforeach; ?> 

应用/视图/ editdrprofile.ctp

<h1>Edit Post</h1>
<?php
echo $this->Form->create('Drprofile');
?>

<table>
<tr><h3>Edit profile</h3></tr>
<tr><td>Name</td><td><?php echo $this->Form->text('User.fullname'); ?></td></tr>
<tr><td>Email</td><td><?php echo $this->Form->text('User.email'); ?></td></tr>
<tr><td>Mobile</td><td><?php echo $this->Form->text('User.contactnumber'); ?></td></tr>
<tr><td>Gender</td><td><?php 
$options=array('M'=>'Male','F'=>'Female');
$attributes=array('legend'=>false);
echo $this->Form->radio('User.gender',$options,$attributes);
?></td></td></tr>
<tr><td>D.O.b</td><td><?php echo $this->Form->text('dob'); ?></td></tr>
<tr><td>Experience</td><td><?php echo $this->Form->select('exp', array('options' => array('1 year','2 years ','3 years','4 years','5-10 years'))); ?></td></tr>
<tr><td><?php echo $this->Form->input('drprofile.Resume', array('between'=>'<br />','type'=>'file'));?></td></tr>



<tr><td><?php echo $this->Form->end('Save Drprofile');?></td></tr>
<?php /*?><?php echo $this->Form->input('id', array('type' => 'hidden'));?><?php */?>



</table>

1 个答案:

答案 0 :(得分:0)

首先在Dashboards控制器中执行此操作,然后为Drprofile创建数据。如果您最终想在DashboardsController中执行此操作,那么您应该将您的更改为:

echo $this->Form->create('Drprofile', array(
    'url' => array('controller' => 'dashboards', 'action' => 'editdrprofile')
));

通过这种方式,您可以了解要使用的操作。但我建议你把它移到DprofilesController并在那里编辑那些数据。

还有一件事,你在那里关闭了表单,然后在$this->Form->input之后添加了id,更改了它。