我有一个rest控制器,它将返回应用程序内通知。通知模型仅保留有关通知类型和激活用户的参考ID,因为它们需要进行格式化才能显示。
我可以通过覆盖Highcharts.stockChart('container', {
exporting: {
buttons: {
customButton: {
text: 'Linear',
onclick: function() {
this.yAxis[0].update({
type: 'linear'
});
}
},
customButton2: {
text: 'Logarithmic',
onclick: function() {
this.yAxis[0].update({
type: 'logarithmic'
});
}
},
customButton3: {
text: 'Zoom',
onclick: function() {
$('#container').toggleClass('modal');
this.reflow();
}
}
}
},
rangeSelector: {
inputPosition: {
align: 'left'
}
},
series: [{
data: [1, 2, 4, 8, 16, 32, 64, 128, 256, 512]
}]
});
并手动返回一个数组来做到这一点,但是随后我错过了actionIndex()
与yii\rest\Controller
结合使用的本机休息分页。
这是我当前的功能:
yii\data\ActiveDataProvider
格式化程序是在通知模型中定义的:
use yii\rest\Controller;
class NotificationController extends Controller
{
public function actionIndex()
{
return new ActiveDataProvider([
'query' => Notification::find()->joinWith(['type'])
]);
}
}
但是我不能在public function getString()
{
return \modules\notifications\channels\Application::formatMessage($this->type->content, $this->data);
}
中使用asArray()返回关系字段,也不能返回诸如query
之类的额外参数。我可以将extraFields用于关系数据,但也需要对其进行格式化。
如何在ActiveDataProvider中从string
返回string
?