学说默认值和关系(doctrine default values and relations)

2019-09-28 05:54发布

在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 */
    }
}

Answer 1:

让我们来看看,如果我们可以算出来。

的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中定义的,而不只是在数据库中。 学说将无法读取默认值从数据库中,并依赖于模式来告诉它做什么。

让我知道如何工作的。

干杯,〜Ĵ



Answer 2:

该Doctrine_Table类包含getDefaultValueOf方法,做了你在找什么。 所以,如果你有一个学说的记录,你可以写这样的:$ record-> getTable() - > getDefaultValueOf( '地址行'); 其中“地址行”为一列。 希望这可以帮助。



文章来源: doctrine default values and relations
标签: doctrine