cakephp - cakephp 在布尔值上调用成员函数 patchEntities()
问题描述
每个人。我对补丁实体有疑问。我想通过使用表单来编辑实体。
- 使用表单(视图)编辑实体
- 发送数据(查看)
- 使用 patchEntities(控制器)应用数据
但是,当我尝试修补实体时出现错误。
表名:tempTable
列:id、name、age
控制器
$data = $this->table->find('all');
if($this->request->is(['post'])){
$entities = $table->patchEntities($data->toArray(), $this->request->data());
}
$this->set(compact('data'));
看法
<?= $this->Form->Create('tempTable');?>
<?php foreach ($data as $key=>$d): ?>
<?= $this->Form->Control($key.'.name', ['type' => 'text', 'default' => $d->name]);?>
<?php endforeach; ?>
<?= $this->Form->submit('submit');?>
<?= $this->Form->end();?>
我收到一个错误“在布尔值上调用成员函数 patchEntities()”
我不明白为什么会出现错误。
你能给我一个提示吗?非常感谢。
解决方案
您没有执行查询,因此不能使用toArray()
on 方法$data
,这就是$data->toArray()
返回false
(布尔值)的原因。
$this->table->find('all')
只设置查询。您需要添加类似->all()
执行它的内容。
试试这段代码:
$query = $data = $this->table->find('all');
$data = $query->all();
推荐阅读
- javascript - JavaScript 将值发送到后端(隐藏的 html 输入或所有方式)
- flutter - 在 Flutter 的基线上将图像与 Flutter 中的文本对齐
- javascript - 按钮分页
- javascript - 在javascript中的入口点元素之后返回多个数字
- sql - 尽管对所有关键变量进行了分组,SQL 还是重复?
- reactjs - 如何将变量传递给组件树中的第一个孩子
- swift - 在我的视图集合中,我添加了一个搜索栏,它过滤了单元格,但是当我单击单元格时,它自己的路径没有改变
- java - 用户验证电子邮件和密码(Java web、servlet)
- google-cloud-platform - 如何使用 Puppet 在 IIS 中创建多个站点?
- javascript - 如何使按钮在动态表中保持相同大小