我是使用zend框架的新手,而且我真的很挣扎。我也是与MVC合作的新手。
我创建了一个简单的CRUD应用程序,正在处理更新部分。更新数据库工作正常,但我现在想添加一个工具,在向用户输出成功消息之前检查更新是否成功。
我已使用DbTable连接到数据库并硬编码了一些用于测试的信息
public function updateRow()
{
$update = new Application_Model_DbTable_Bins();
$data = array(
'BIN' => 'any',
'DIVIDE' => 'two',
'TYPE' => 'test',
'STYLE' => 'none',
'PRICE' => 'unknown',
'STORAGE' => 'none',
'BIN_ID' => 1
);
$where = $update->getAdapter()->quoteInto('BIN_ID = ?', 1);
$update->update($data, $where);
}
我的问题是:
如何检查行是否已更新?
上面的代码是否应该在模型中处理数据库?
我应该计算模型或控制器中的行吗?
我使用的是zend版本1.12。
我查看了快速入门指南,但它似乎没有提到这一点,我看了other zend documentation,但很难理解它。
最后我使用NetBeans,因此倾向于依赖弹出框说明哪些方法可用,我知道这些方法并不完美。
答案 0 :(得分:2)
该行:
$update->update($data, $where);
返回受影响的行数。您可以使用:
$nbRows = $update->update($data, $where);
return $nbRows;
通过更新返回受影响的行数。
在NetBeans中,您在弹出窗口中看到的注释是Zend Framework本身的文档。您在弹出窗口中看到的是放在ZF源代码中的函数之前的注释。在编码时也应该使用那种类型的注释:
/**
* This function does something useful
* @params int $param1 An integer
* @return int The transformed integer
**/
public function usefulFunction($param1) {
return $param1 + 1;
}
这样,当您使用自己的函数时,您将在NetBeans中看到您的注释。
有了这一切,我的观点是,在NetBeans中,弹出窗口通常非常准确。只是不要忘记检查您使用的函数的返回值!