我正在使用CakePHP并希望将作者的名称(存储在会话中)传递给正在保存到数据库的文章。隐藏领域是唯一的方法吗?还是有更好的方法?
答案 0 :(得分:0)
还有其他方法,但隐藏字段与其他方法一样方便,可能是最透明的(即其他开发人员可以检测到以后可能接收到的代码)。您还可以在保存之前将值插入$this->data
结构中,并确保您的模型知道如何处理它。
答案 1 :(得分:0)
如果您已在会话中使用它,我不会花费额外的代码/时间将其添加到隐藏字段。我会更新方法,将会话变量添加到$ this->数据中,以便在保存记录时添加它。所以控制器中的方法看起来像:
function add() {
if($this->data) {
$this->data['Article']['author'] = $this->Session->read('User.name');
$this->Article->create();
if ($this->Article->save($this->data)) {
...
}
这样你就不会处理所有额外的工作,你仍然可以达到你想要的结果。