假设我有一个名为Anything的模型类,在Yii中,我想要的只是获取字段值,而不是字段名称,我该怎么做?
因为使用了类似的东西:
$anything = new Anything;
$anything->field_name;
返回该字段的值,这是其目的,如果你想要的只是字段名称的字符串,你怎么能这样做?
我尝试使用:
$anything->attributes;
但它只返回一个字段名称数组,我想尝试将特定值作为定义的常量。
我想要的是使用具有特定实际用途的$ _POST,所以我不需要使用:
$_POST["Model_name"];
相反,我可以使用:
$_POST[Anything::model()->name][Anything::model()->field_name->name]
这似乎比“”和“在这里和那里好多了。主要是因为我试图在同一个处方集中设置不同模型的多个场集。
所以,如果我可以使用:
$_POST[Anything::model()->name][Anything::model()->field_name->name];
和
$_POST[Something::model()->name][Something::model()->field_name->name]
和
$_POST[Godspeed::model()->name][Godspeed::model()->field_name->name]
这将节省我将来可能遇到的很多问题。
答案 0 :(得分:1)
$strModelName = 'ModelName'; //dynamic - whatever model name you put in it
$find_id = 3;
$record = $strModelName::model()->findByPK($find_id); //it's same with ModelName::model()->findByPK(3)
foreach($record->attributes as $key=>$value){
var_dump($_POST[$strModelName][$key]); //get value corresponding to given key
}
顺便说一句,您仍然需要检查模型是否存在 http://www.yiiframework.com/forum/index.php/topic/22790-check-if-model-exists/