如何使用Zend更新备注值?

时间:2014-05-23 05:30:32

标签: php zend-framework

这是我在Zend上的表格部分:

$remarks = new Zend_Form_Element_Checkbox('remarks');
$remarks->setLabel('Check this if your task is done')
        ->setCheckedValue(true);

这是我的控制者:

if ($form->isValid($formData)) {
    $id = (int)$form->getValue('tid');
    $taskname = $form->getValue('taskname');
    $startdate  = $form->getValue('startdate');
    $endate     = $form->getValue('endate');
    $remarks    = $form->getValue('remarks');
    $task = new Application_Model_DbTable_Task();
    if ($remarks == 1) { 
        $task->updateTask($id , $taskname , $startdate , $endate , $remarks);
    } elseif ($remarks == 0) {
        $task->updateTask($id , $taskname , $startdate , $endate);
    }
    $this->_helper->redirector('index');

我在数据库中备注的defalut值是0,我想使用Zend中的复选框将其值更改为1,请帮助谢谢

这是我的DBTable型号

protected $_name = 'task';

public function getTask($id)
{
    $id = (int)$id ;
    $row = $this->fetchrow('tid = '. $id );
    if (!$row) {
        throw new Exeption("Sorry could not find row $row");
    }
    return $row->toArray();
}

public function addTask($taskname , $startdate , $endate)
{
    $data = array(
            'taskname'  => $taskname ,
            'startdate' => $startdate  ,
            'endate'    => $endate ,
            );
    $this->insert($data);
}

public function updateTask($id ,$taskname , $startdate , $endate)
{
    $data = array(
            'taskname'  => $taskname ,
            'startdate' => $startdate ,
            'endate'    => $endate ,
            'remarks'   => $remarks ,
            );
    $this->update($data , 'tid= ' . (int)$id);
}

感谢您的回答我只需编辑我的代码

   public function updateTask($id ,$taskname , $startdate , $endate, $remarks )

并且它工作得很好还要感谢Jay Bhatt在我的Application_Model_DbTable_Task()模型中询问我的代码我只记得我必须做的事情

1 个答案:

答案 0 :(得分:0)

尝试在模型的$remarks功能中添加updateTask参数 即,替换

public function updateTask($id ,$taskname , $startdate , $endate)

通过

public function updateTask($id ,$taskname , $startdate , $endate, $remarks = 0)