【发布时间】:2012-04-06 20:20:38
【问题描述】:
我想填充一个空模型并将模型保存在 blob 字段中以供以后使用。我的问题是我找不到如何向空模型添加另一行。
这行得通:
$test = LineItem::model();
$test->item_id = '2';
这不起作用
$test->1->item_id = '3';
或
$test->item_id[1] = '3';
我曾尝试查看 Yii 文档,但找不到答案。
谢谢
澄清 我试图使用真实表的模型创建一个假表。我正在开发一个发票系统,我不想在“关闭”之前将行项目或发票正文信息正确地发送到数据库。相反,我想填充相应的模型,然后将其序列化并存储在 BLOB 字段中。发票完成后,数据将写入表中。
【问题讨论】:
-
我不确定您这样做的方式是否正确。序列化模型行,将其插入内存数据库中的 BLOB 听起来很麻烦 - 我认为将其写入真正的数据库行会更好,但有一个
is_closed可以设置的布尔列当发票关闭时。 -
@halfer,感谢您的建议。我现在实际上正在这样做,但它导致没有连续的发票号码的问题。如果窗口关闭或发票未完成,它将在数据库中打开。我希望避免这种情况。我还想使用上述方案作为更改的跟踪和存档方法。周末想一想,我可能会回到我以前的数组方案并放弃使用数据库的模型。
-
我认为只要用户没有明确关闭它,它就可以在数据库中“打开”。如果您的问题是发票编号应该是连续的,而目前不是,那么我想知道您是否尝试使用主键作为公共发票编号?我认为这可能不是最好的解决方案;主键和外键用于参考完整性,而不是用于人类参考。为您的顺序客户发票编号添加另一列(如果适用,则带有唯一约束) - 如果适用于您的 ERD,使其可为空,因此只有真正的发票(“已关闭”?)得到一个。
-
@halfer.. 感谢您的建议.. 我使用表格 PK 作为可见发票编号,但我喜欢第二列保存可见发票编号的想法。