首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >CakePHP:为什么无法使用set()或save()更新记录?

CakePHP:为什么无法使用set()或save()更新记录?
EN

Stack Overflow用户
提问于 2013-05-02 12:37:12
回答 4查看 954关注 0票数 3

我整晚都在试着更新这样的记录:

代码语言:javascript
运行
复制
                $r = $this->Question->read(NULL, $question['Question']['id']);
                debug($r);// This is a complete Question array
                $this->Question->set('status', 'version');
                $s = $this->Question->save();
                //$s = $this->Question->save($r['Question']);//this also doesn't work
                debug($s); // = False every time!! Why??
                exit;

这两条评论显示了我尝试过的变体,但也不起作用。

@Dipesh:

代码语言:javascript
运行
复制
                $this->data = $this->Question->read(NULL, $question['Question']['id']);
                $this->Question->status = 'version';
                $s = $this->Question->save($this->data);
                debug($s);
                exit;

@Dipesh II:

代码语言:javascript
运行
复制
                $this->request->data = $this->Question->read(NULL, $question['Question']['id']);
                debug($this->data);
                //$this->Question->status = 'version';
                $this->request->data['Question']['status'] = 'version';
                $s = $this->Question->save($this->request->data);
                //$s = $this->Question->save($r['Question']);
                debug($s);
                exit;

@Dipesh III:(已删除)

EN

Stack Overflow用户

发布于 2013-10-25 02:42:59

cakePHP在Models::set()Controller::set();中都提供了一个名为set()的方法

关于Controller::set()此方法用于从任何控制器方法设置视图级别的变量。例如,从模型中获取记录并将其设置为视图,以便将其显示给客户端,如下所示

代码语言:javascript
运行
复制
$data = $this->{ModelName}->find('first');
$this->set('dataForView',$data) // now you can access $data in your view as $dataForView

关于Model:: set ()此方法用于在模型上设置数据,传递的数组格式必须与Model::save()方法中使用的格式相同,即如下所示

代码语言:javascript
运行
复制
$dataFormModel = array('ModelName'=>array('col_name'=>$colValue));
$this->{ModelName}->set($dataForModel);

Model::set()将仅接受此格式的参数,一旦成功设置,您可以执行以下操作

  1. 直接根据模型中指定的验证规则验证此数据,如下所示

通过调用Model::save(),$isValid = $this->ModelName->validate();

  • save/update数据
票数 1
EN
查看全部 4 条回答
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/16330401

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档