5

Yii2 モデル ページ ( http://www.yiiframework.com/doc-2.0/yii-base-model.html ) の「フィールド」セクションで、「いくつかに基づいて異なるフィールド リストを設定できる」ことがわかります。コンテキスト情報。たとえば、$scenario または現在のアプリケーション ユーザーの権限に応じて、表示可能なフィールドの異なるセットを返したり、一部のフィールドを除外したりできます。"

しかし、シナリオのドキュメント ( http://www.yiiframework.com/doc-2.0/guide-structure-models.html#scenarios ) には、シナリオはモデル属性の検証用に異なるコンテキストを作成するためのものであると書かれています。

モデルからデータを取得し、API の結果として表示するには、デフォルトのアクション (actionIndex、actionView、...) を使用する必要がある Yii2 Restful API を使用しています。これらのメソッド ( http://www.yiiframework.com/doc-2.0/guide-rest-controllers.html#extending-active-controller )をオーバーライドできることはわかっていますが、それらのメソッドで異なるセットのフィールド (さまざまなシナリオに応じて) ?

必要なのは、actionIndex(アイテムリスト)のフィールド1、フィールド2、フィールド3を出力することですが、アクションビュー(アイテムリスト)のフィールド1、フィールド2、フィールド3、フィールド4を出力したいです。

4

3 に答える 3

-1

これは、Yii::$app() を使用して、この問題に対する私の解決策です

public function fields()
{
    if(Yii::$app->controller->action->uniqueId == 'controller/action'){
        return ['field_1','field_2','field_3','field_4'];
    }else{
        return ['field_1','field_3'];
    }
}

あなたのために働くことを願っています

于 2015-12-10T22:50:44.970 に答える