如何从模型中获取字段名称而不是值?

时间:2013-08-14 04:44:19

标签: yii

假设我有一个名为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]

这将节省我将来可能遇到的很多问题。

1 个答案:

答案 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/