在beforeMarshall()
中,我在我的实体中创建了一个额外的字段。
在我的控制器中,我debug($myEntity)
就在将数据分配给视图之前,我看到了我的字段。
我甚至创建了一个像下面这样的getter:
protected function _getTmpImage() {
if (isset($this->_properties['tmp_image'])) {
debug($this->_properties['tmp_image']);
return $this->_properties['tmp_image'];
} else {
return null;
}
}
在我看来,我看到了相应的debug()
显示。
但接下来的行:
<?= $this->Form->hidden('agpoi_images.'.$key.'.tmp_image'); ?>
desesperately创建以下html代码:
<input name="agpoi_images[0][tmp_image]" class="form-control" value="" type="hidden">
你能告诉我为什么吗?
PS:我也尝试在我的实体类中添加以下语句,即使我认为我不必根据the doc
执行此操作class MyEntity extends Entity
{
protected $_virtual = ['tmp_image'];
}
答案 0 :(得分:0)
在视图文件中,当使用表单元素时,public class Rating {
private static int count; //here
protected static Rating [] ratings = new Rating [100];
// instance variables, constructor, methods, etc
必须是'Modelname.fieldname'形式,这使得cakephp很容易替换控制器数据并以这种格式发送post请求。
在您的情况下,您可以使用$fieldname
创建隐藏的表单字段,该字段将显示为
$this->Form->hidden(‘MyEntity.tmp_image)