脚本宝典收集整理的这篇文章主要介绍了zend-framework – Zend_Db_Table_Row:为什么我必须使用createRow()?,脚本宝典觉得挺不错的,现在分享给大家,也给大家做个参考。
@H_301_8@
例如,如果我已经扩展了默认类来创建自己的User表和行类,那么为了创建一个新的行对象,我总是必须执行以下操作来创建一个新的Row对象:@H_301_8@
@H_301_8@
$userTable = new App_Table_User(); $userRow = $userTable->createRow(); $userRow->setName('bob'); $userRow->save();
但对我来说,能够说出来更有意义:@H_301_8@
@H_301_8@
$userRow = new App_Row_User(); $userRow->setName('bob'); $userRow->save();
我知道我总是可以在扩展Zend_Db_Table_Row_Abstract的Row类中构建这个功能,但我想知道是否有一个特定的原因,Zend Framework团队不只是将它作为默认值?@H_301_8@
@H_301_8@
但Row对象需要知道哪些列对该行数据有效.@H_301_8@
将行的类名映射到其对应的表类名是没有魔力的.因此Row本身并不知道它属于哪个表.因此它无法猜测如何编写sql来执行插入或更新操作;它从相应的Zend_Db_Table对象获取此元数据.您必须告诉Row要使用哪个表.@H_301_8@
如果使用new构造行对象,则必须将配置数组传递给构造函数,包括表类名,或者该表类的对象实例.@H_301_8@
@H_301_8@
$userRow = new App_Row_User( array('table' => 'App_Table_User') );
要么@H_301_8@
@H_301_8@
$userTable = new App_Table_User(); $userRow = new App_Row_User( array('table' => $userTable) );
如果没有有效的表对象或类名,使用new实例化Row对象将引发异常.@H_301_8@
同样,save()使用表对象,调用方法insert()或update().如果没有有效的表对象,Row的save()方法将抛出异常.@H_301_8@
以上是脚本宝典为你收集整理的zend-framework – Zend_Db_Table_Row:为什么我必须使用createRow()?全部内容,希望文章能够帮你解决zend-framework – Zend_Db_Table_Row:为什么我必须使用createRow()?所遇到的问题。
本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。