0

Yii に Anything という名前のモデル クラスがあり、フィールド値ではなくフィールド名を取得したいだけだとします。

次のようなものを使用するため:

$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]

それは私が将来抱えていたかもしれない多くの問題を救うでしょう.

4

1 に答える 1

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/

于 2013-08-14T05:22:44.803 に答える