【发布时间】:2016-03-11 04:08:23
【问题描述】:
情况
使用Cake 3.2.4
我有一个EventTicketSales 表
那个
$this->belongsToMany('Approvings', [
'className' => 'Contacts',
'joinTable' => 'event_ticket_sales_approvings',
'targetForeignKey' => 'contact_id',
'saveStrategy' => 'replace',
]);
所以当我在 EventTicketSales 表中进行分页时,我只想显示 Approvings 中的 2 个字段,即 Approvings.name 和 Approvings.company。
我尝试过的
我尝试了以下方法:
$this->paginate["contain"] = ["Approvings"];
$this->paginate['fields'] = [
'EventTicketSales.id', 'EventTicketSales.event_id', 'EventTicketSales.billing_amount_in_sgd',
'EventTicketSales.payment_terms', 'EventTicketSales.invoice_number',
'EventTicketSales.due_date',
'Approvings.id', 'Approvings.name', 'Approvings.company'
];
我收到一条关于 JsonSerialize 在不相关模型中的错误消息。
[Exception] Failed calling App\Model\Entity\User::jsonSerialize() #0 /var/virtual/WebApps/corri/vendor/cakephp/cakephp/src/View/JsonView.php(0
我的预期
我预计结果如下:(我以 json 格式显示)
id: "06f39ba3-9a17-47c6-9374-24b49fb64665",
event_id: 7,
billing_amount_in_sgd: 7680.03,
payment_terms: "45 days",
invoice_number: "9191",
due_date: "2016-03-05T00:00:00+0800",
approvings: [
{
id: 63,
name: "Jaime Jen",
company: "Apple Company",
_joinData: {
contact_id: 63,
id: 335,
event_ticket_sale_id: "06f39ba3-9a17-47c6-9374-24b49fb64665",
created: "2016-01-20T13:43:44+0800",
modified: "2016-01-20T13:43:44+0800"
}
}
]
【问题讨论】:
-
您的问题的格式很好,但请不要忘记“不起作用”绝不是正确的问题描述!我很确定您遇到了异常,这应该是您的问题。
-
已更改。很抱歉。
标签: cakephp pagination cakephp-3.0