我有一个模型,它引用了扩展 Zend_Db 的表注册表以及一些基本上一直使用fetchAll()
的方法。
会发生什么:我的表有一个 DATE 字段,当我调用$ row-> reg_date时,我希望它输出已经格式化。是否可以通过在模型中执行某些操作或者是否必须手动格式化?
答案 0 :(得分:1)
你有几个选择:
Zend_Db_Table_Row_Abstract::__get()
时,reg_date
<?= $this->formatDate($this->row->reg_date, 'fancy'); ?>
Doctrine可能有你想要的答案,以下是http://www.doctrine-project.org/documentation/manual/1_2/en/introduction-to-models#generating-models:
class User extends BaseUser
{
public function setPassword($password)
{
return $this->_set('password', md5($password));
}
}
$user = new User();
$user->username = 'jwage';
$user->password = 'changeme';
echo $user->password; // outputs md5 hash and not changeme
如果我是你,我会使用view helper-option。您可以在那里添加自定义CSS并准备就绪。如果您需要更改它,您可以在一个地方更改它并更新您的应用程序。
此外,如果您曾想对日期做一些事情(将其与另一个日期进行比较,只获得月份,本地化等),您需要一个干净的起点这就是你存储在数据库中(即2010-05-16
或2010-05-16 16:55:00
)。因此:视图设置属于视图。
答案 1 :(得分:0)
我强烈建议不要那样格式化日期。您对日期格式的要求可能会在某些时候发生变化,要求您对自定义数据库访问类进行更改。这种类型的自定义格式应该在视图中完成,恕我直言。
如果您只是必须这样做(我以前做过这样的事情,稍后会后悔),您需要extend Zend_Db_Table_Row并在那里进行自定义格式化。将自定义格式设置在子类中将减轻损失;)像chelmertz所说,您可能会覆盖__get()
,检查reg_date
,并在此时应用自定义格式。