用CakePHP表示对象的版本

几个星期后才开始进入CakePHP。我对MVC框架有一些经验,但是这个问题让我有所回首。 我目前正在开发一个模型
foo
,包含一个主要ID和一些属性。由于需要更改
foo
的完整历史记录,因此
foo
的内容保存在表
foo_content
中。这两个表通过
foo_content.foo_id = foo.id
连接,在Cake中以
foo hasMany foo_content
关系连接。 要跟踪
foo
的版本,
foo_content
还包含列
version
foo
本身包含字段
currentVersion
。每当用户更新
foo
时,版本就是一个加1的数字。这是一个较旧的本机PHP-app顺便说一句,要在Cake上重写。在应用程序中,10次中有9次,最新版本(
foo.currentVersion
)是需要在前端表示的数据库条目。 我的问题很简单:是否有人直接在模型中表示这一点?或者这种逻辑是否只需要在控制器中定义? 非常感谢您的帮助!     
已邀请:
要始终自动获取最新版本,您可以轻松地建立另一个关联:
public $hasOne = array(
    'CurrentContent' => array(
        …
        'condition' => array('FooContent.version' => 'Foo.currentVersion')
    )
)
那,或者你在你的
hasMany
关系中添加一个
'order' => array('FooContent.version' => 'desc')
条款,并始终使用
$foo['FooContent'][0]
。 要自动创建存档版本,您可以使用
beforeSave
和/或
afterSave
回调。     

要回复问题请先登录注册