CakePHP函数没有更新表

时间:2012-05-26 01:04:05

标签: database cakephp

大家好,在尝试更新我的数据库时,此函数不会从表中获取id,也不会更新表中的那一行。

也犯了错误
$this->Relationship->id = $this->request->data['id'];

这是完整的功能

public function approve($id=null){
        $this->Relationship->id = $id;
        if($this->request->is('get')){
        $this->request->data=$this->Relationship->read();}
        $this->Relationship->id = $this->request->data['id'];
        if($this->Relationship->save($this->request->data)) {
        $this->Session->setFlash('Your Relationship has been updated.');
        $this->redirect(array('action' => 'request'));
        } else {
            $this->Session->setFlash('Unable to update your post.');
        }
    }
    }

这是表单/视图

<?php
echo $this->Form->create('Relationship', array('action'=>'approve'));
echo $this->Form->input('expirydate',array('label'=>'Expiry Date: ', 'class' => 'dateclass')); 
echo $this->Form->end('Submit');

?>

我正在尝试使用此函数获取id,并在该条目中编辑两个字段

2 个答案:

答案 0 :(得分:0)

如果您正确设置表单,则应为$this->request->data['Relationship']['id'];。此外,你可以做到

$this->Relationship->create($this->request->data);
$this->Relationship->save()

答案 1 :(得分:0)

    public function approve($id=null){
        $this->set('title_for_layout', 'Relationships');
        $this->set('stylesheet_used', 'homestyle');
        $this->set('image_used', 'eBOXLogoHome.jpg');   
        $this->layout='home_layout';

        if ($this->request->is('get')) {
        $this->request->data = $this->Relationship->read(NULL, $id);

        } else {
        //sets active to 1
         $this->Relationship->read(null, $id);
         $this->Relationship->set(array('active' => true,));
        if ($this->Relationship->save($this->request->data)) {

            $this->Session->setFlash('Your post has been updated.');
            $this->redirect(array('action' => 'request'));
        } else {
            $this->Session->setFlash('Unable to update your post.');
        }
    }
}

我还必须在数据库中从0 => 1更改tinyint。我遇到的另一个问题是我的请求视图,它没有将id传递给approve函数。一旦我将代码更改为此工作

<?php foreach($Relationships as $relationship):?>
                    <tr> 

                        <td align='center'><?php echo $relationship['Relationship']['partyone']; ?></td>
                        <td align='center'><?php echo $relationship['Relationship']['partytwo']; ?></td>
                        <td> </td>
                        <td><?php echo $this->Html->link($relationship['Relationship']['partyone'], array('action'=>'approve', $relationship['Relationship']['id'])); ;?>
                        </td>

                    </tr>
                <?php endforeach; ?>

            </table>