gpt4 book ai didi

yii - YII 中的 setAttribute() 函数不起作用

转载 作者:行者123 更新时间:2023-12-04 06:06:04 25 4
gpt4 key购买 nike

我正在使用 PHP Yii 框架和 MongoDB(yiimongodbsuite)。我创建了一个从 EMongoDocument 扩展的模型。

<?php

class MyModel extends EMongoDocument
{
public $attr1;
public $attr2;

// rules, custom validations and other functions....

public function setAttributes($values, $safeOnly=true)
{
if(!is_array($values))
return;

if($this->hasEmbeddedDocuments())
{
$attributes=array_flip($safeOnly ? $this->getSafeAttributeNames() : $this->attributeNames());

foreach($this->embeddedDocuments() as $fieldName => $className)
if(isset($values[$fieldName]) && isset($attributes[$fieldName]))
{
$this->$fieldName->setAttributes($values[$fieldName], $safeOnly);
unset($values[$fieldName]);
}
}

parent::setAttributes($values, $safeOnly);
}
}

在 Controller 中,
$dataModel = new MyModel();
$dataModel->setAttributes($_POST['MyModel']);
if($dataModel->validate()){
$dataModel->save();
}

上面的代码没有设置属性值。
如果有任何错误,请告诉我。

最佳答案

您需要确保在每个级别都使用“安全”验证规则。

要了解更多信息,请阅读此 http://www.yiiframework.com/wiki/161/understanding-safe-validation-rules/

关于yii - YII 中的 setAttribute() 函数不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8341155/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com