在MySQL中我可以这样列设置默认值:
ALTER TABLE <Table> CHANGE <Column> DEFAULT <NEW_DEFAULT_VALUE>
我可以检索默认值:
SELECT DEFAULT(<Column>) FROM <Table> LIMIT 1
是否有可能实现这一概念与原则?
我真正需要的是在我的表类这样的方法:
class UserTable extend Doctrine_Table {
/* ... */
/**
* @return Doctrine_Record
*/
public function getDefaultProperty() {
return ???;
}
public function setDefaultProperty($value) {
/* $value can be either integer or Doctrine_Record */
}
}
让我们来看看,如果我们可以算出来。
的567线Record.php
,所述的一部分assignDefaultValues()
方法,其作为填充在创建对象的默认值表示:
$default = $this->_table->getDefaultValueOf($column);
所以,你实际上并不需要添加getDefaultProperty()
您可以使用:
$userTable = Doctrine::getTable('User');
$defaultName = $userTable->getDefaultValueOf('name');
但是,你似乎想getDefaultProperty()
返回一个Doctrine_Record
。 如果你只是想找回具有所有在其上设置的默认值,整个对象,我敢肯定,你可以使用:
$defaultUser = new User();
(请参阅用于缺省值学说手册 )
不过可以肯定的是您的默认值是在schema.yml中定义的,而不只是在数据库中。 学说将无法读取默认值从数据库中,并依赖于模式来告诉它做什么。
让我知道如何工作的。
干杯,〜Ĵ
该Doctrine_Table类包含getDefaultValueOf方法,做了你在找什么。 所以,如果你有一个学说的记录,你可以写这样的:$ record-> getTable() - > getDefaultValueOf( '地址行'); 其中“地址行”为一列。 希望这可以帮助。