Sorting Cakephp3-Paginate sortWhitelist不';t支持二级关联模型
我有一个问题,我不能使用paginate中的sortWhitelist来启用对“第二级关联模型的列”的排序功能。(它与第一级关联模型一起工作)。让我清楚地描述一下: 表格背景:Sorting Cakephp3-Paginate sortWhitelist不';t支持二级关联模型,sorting,cakephp,pagination,cakephp-3.0,Sorting,Cakephp,Pagination,Cakephp 3.0,我有一个问题,我不能使用paginate中的sortWhitelist来启用对“第二级关联模型的列”的排序功能。(它与第一级关联模型一起工作)。让我清楚地描述一下: 表格背景: 用户:id,名称 Tickets:id,code,name,price tickets折扣:id,ticket\u code,用户id,价格 门票有一个默认价格,有时还有打折票,提供更便宜的价格 希望做什么: 我正在制作Tickets的查看页面,它不仅显示Ticket本身的数据,还显示一个表 TicketDisco
:用户
,id
名称
:Tickets
,id
,code
,name
price
:tickets折扣
,id
,ticket\u code
,用户id
价格
Tickets
的查看页面,它不仅显示Ticket
本身的数据,还显示一个表
记录TicketDiscounts
,以及Tickets.ticket\u code=Tickets.code
记录Users
TicketDiscounts.user\u id=Users.user\u id
sortWhitelist
的配置键,但在这种情况下,它只支持“链接”ticketslipses
比如:
票务-->票务折扣[确定]票务---->票务折扣---->用户[不正常] 在
ticketcontroller.php
中:
public function view($id = null) {
$ticket = $this->Ticket->get($id);
$setting = [
"sortWhitelist" => [
"Users.id", "Users.name", "TicketsDiscounts.price"
]
];
$paginate_discountsowners = $this->paginate(
$this->Tickets->TicketsDiscounts
->findByTicketsCode($ticket->code)
->contain("Users"), $setting
);
$this->set('paginate_discountsowners', $paginate_discountsowners);
$this->set('_serialize', ['paginate_discountsowners']);
}
在视图.ctp中
:
<td><?= $this->Paginator->sort("id", "User ID", ["model" => "Users"]) ?></td>
<td><?= $this->Paginator->sort("name", "User Name", ["model" => "Users"]) ?></td>
<td><?= $this->Paginator->sort("price", "Discount Price", ["model" => "TicketsDiscounts"]) ?></td>
研究:
我无意中发现了类似的东西。我有结构
教师
->用户
->人
,我想按人的名字排序
教师控制器:
public$paginate=['sortWhitelist'=>Persons.forename'];
查看:
因此,简而言之,我认为您只需更改第一个和第二个排序链接,以引用字段Users.id
和Users.name