我可以在Yii2模型頁面(http://www.yiiframework.com/doc-2.0/yii-base-model.html)中看到,在「字段」部分可以根據某些上下文信息設置「不同的字段列表,例如,根據$ scenario或當前應用程序的權限用戶,您可能會返回不同的可見字段集或過濾掉某些字段。「Yii2:我可以使用場景爲不同的動作指定不同的模型字段集合嗎?
但是,場景文檔(http://www.yiiframework.com/doc-2.0/guide-structure-models.html#scenarios)表示場景用於爲模型屬性驗證創建不同的上下文。
我使用Yii2 Restful API,我必須使用默認操作(actionIndex,actionView,...)從模型中獲取數據並顯示爲API結果。我知道我可以覆蓋這些方法(http://www.yiiframework.com/doc-2.0/guide-rest-controllers.html#extending-active-controller),但是我怎麼能說這些方法使用不同的字段集合(取決於不同的場景)?
我需要的是爲actionIndex(項目列表)輸出field1,field2,field3,但我想爲actionView(項目列表)輸出field1,field2,field3,field4。
不知道,從來沒有用過其餘的api ...從你的模型類派生,引入場景(也許規則),然後重寫字段()?在控制器中,您必須在每個操作中在模型上設置場景(即,您必須覆蓋默認實現)。在字段中,您可以決定爲隱式toArray()調用啓用哪些屬性。無論如何,這對你有用嗎? – robsch