【问题标题】:Reset MySQL default values programmatically以编程方式重置 MySQL 默认值
【发布时间】:2011-07-05 14:14:59
【问题描述】:

是否可以在 CakePHP 中为 MySQL 列设置默认值?我可以访问用户表的默认值:

$fields = $this->User->schema(); 
$defaultValue = $fields['Amount']['default'];

现在我想将此默认值更改为管理员提供的任何特定值.. 可以吗?

【问题讨论】:

    标签: php mysql cakephp-1.3


    【解决方案1】:

    尝试更改架构:

    ALTER TABLE dbo.table
    ADD CONSTRAINT def_mycolumn DEFAULT Amount FOR mycolumn
    

    【讨论】:

    • @Tariq : 我在模型中使用了 sql 语句 .. 并更改了表
    【解决方案2】:

    您不应使用 MySQL 表架构的 default 列属性来存储您计划允许用户修改的值。

    您可能会考虑一些新的DefaultValues 表/模型(作为一种解决方案) 用于存储此Amount 列和其他类似列的可编辑默认值。然后,您可以有条件地检查 User 实例的 Amount 在保存时是否具有空值,将其设置为从该新表中检索的可编辑默认值。这为您提供了您正在寻找的功能(管理员可编辑的默认值),同时能够利用 Cake 的内置表/模型/表单来管理这些默认值的存储/检索。

    【讨论】:

    • @Deefour:我知道这个解决方案,但我不想实施它,因为我只为一个称为金额的字段创建新表
    • 我上面提供的解决方案只是为了引导您朝着正确的方向前进 - 不允许您的用户以任何方式管理您的数据库模式。您可以将此值存储在任意数量的位置。
    猜你喜欢
    • 2019-01-17
    • 2013-03-25
    • 1970-01-01
    • 1970-01-01
    • 2011-04-07
    • 2018-06-11
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多