【问题标题】:CakePHP 3 - Paginate sortWhitelist doesn't support 2nd-level Associated ModelCakePHP 3 - Paginate sortWhitelist 不支持二级关联模型
【发布时间】:2016-03-16 21:50:08
【问题描述】:

我有一个问题,我不能在分页中使用 sortWhitelist 来启用对“第二级关联模型的列的排序功能。(它适用于第一级关联模型)。让我清楚地描述一下:

表格背景:

  • Users: id, name
  • Tickets: id, code, name, price
  • TicketsDiscounts: id, ticket_code, user_id, price

门票有默认价格,有时还有打折门票,提供更便宜的价格。

想做的事:

我正在制作Tickets的视图页面,它不仅显示Ticket本身的数据,还显示了一个表格

  • TicketDiscounts 记录 whereTickets.ticket_code = Tickets.code
  • Users 记录其中TicketDiscounts.user_id = Users.user_id

问题:

它实际上工作正常,直到我想为表格添加一些排序功能。 我知道有一个名为sortWhitelist 的配置键,但在这种情况下它只支持“链接”TicketsDiscounts

喜欢:

门票---->门票折扣 [OK]
Tickets---->TicketsDiscounts---->Users [NOT OK]

TicketsController.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']);
}

view.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>

研究: CakePHP - paginate and sort 2nd level association

Pagination Sort in Cakephp 3.x

感谢您阅读我的帖子,欢迎提出任何想法

【问题讨论】:

    标签: sorting cakephp pagination cakephp-3.0


    【解决方案1】:

    我偶然发现了类似的东西。我有结构 Teachers -> Users -> Persons 并想按人的名字排序。

    TeachersController

    public $paginate = ['sortWhitelist' => ['Persons.forename']];
    

    查看

    <?= $this->Paginator->sort('Persons.forename') ?>
    

    因此,简而言之,我认为您只需更改第一和第二排序链接以引用字段Users.idUsers.name

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2019-03-12
      • 1970-01-01
      • 2017-08-14
      • 1970-01-01
      • 1970-01-01
      • 2014-08-04
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多