我在Yii2中使用ActiveController
創建了一個REST API。 actionIndex
的默認實現返回所有模型。 我想要做的是在發送響應之前更改一個屬性的值。 例如,我上傳的圖片只是其名稱存儲在數據庫中。 在發送響應之前,我想要將基本URL與圖像名稱一起嵌入。 我是否需要重寫整個索引方法,或者我可以在action
方法中操作單個屬性?更改一個屬性值Yii2 REST API
0
A
回答
3
我認爲最簡單的方法是覆蓋模型中的fields()
方法。假設你已經爲稱爲的模型配置了你的ActiveController。如果添加的功能到模型可在響應每一個模型中加入了完整的URL:
public function fields() {
return [
'id',
'name' => function() {
return Url::base(true) . $this->name;
}
]
}
如果添加像這樣,它確實意味着,每個代碼調用toArray()
您的手機型號將獲得這個結果。如果您只希望爲ActiveController
發生此問題,則可能需要擴展型號,並且僅在此處包含fields()
方法,因此您可以使用擴展版本配置ActiveController
。
1
我們也可以更改某些字段的顯示名稱:
class User extends \yii\db\ActiveRecord implements \yii\web\IdentityInterface {
/** * API safe fields */
public function fields() {
return [
'id',
'email_address' => 'email',
'first_name',
'last_name',
'full_name' => function($model) {
return $model->getFullName();
},
'updated_at',
'created_at'
];
}
}
看到完整的教程在這裏: http://p2code.com/post/configuring-activecontroller-display-fields-yii-2-21
相關問題
- 1. yii2 rest api tuning
- 2. 更改屬性值
- 3. 更改屬性值
- 4. 更改屬性值
- 5. Yii2 REST API行爲
- 6. 更改GridView的基於模型的屬性值Yii2
- 7. 限制某些屬性的更新Yii2
- 8. 另一個屬性更改時更新幾個屬性?
- 9. Geb更改屬性值
- 10. 更改數據屬性值
- 11. 如何更改屬性值
- 12. CodedUI TreeItem更改值屬性
- 13. 更改樣式屬性值
- 14. 的SimpleXMLElement更改屬性值
- 15. 更改類屬性值
- 16. XML更改值屬性爲
- 17. 更改結構屬性值
- 18. 更改列的屬性值
- 19. jQuery - 屬性更改值
- 20. Yii2 REST API多個瀏覽器登錄
- 21. 更改屬性值會導致所有屬性的更改
- 22. yii2 rest api異常處理
- 23. Yii2 rest api額外字段
- 24. Yii2 REST API分頁getLinks
- 25. Yii2 REST API重寫規則
- 26. Yii2 Rest API承載驗證
- 27. 更改模型屬性的值
- 28. 更改一個屬性與多個屬性
- 29. 如何在屬性值更改時更新從屬屬性?
- 30. 如何在yii2中只排序一個屬性值?
壓倒一切的動作是什麼將是你的情況的解決方案你想要修改的數據也是 –
在發送響應之前修改該值 –