gpt4 book ai didi

带有连接表字段排序的 Cakephp 分页不起作用

转载 作者:行者123 更新时间:2023-12-03 20:23:29 24 4
gpt4 key购买 nike

带有连接表排序的 Cakephp 分页不适用于连接表字段。但是对于自定义 sql join 查询工作正常。请帮我出来。

请参阅下面的示例代码.. 我按顺序有 Artist.name 连接表字段。

$this->paginate = array(
'fields' => array(
'id',
'Song.title',
'Song.date',
'Artist.id AS artist_id',
'Artist.name AS artist_name',
'COUNT(SongViews.id) AS views'
),
'group' => array('ArtistsSong.song_id'),
'recursive' => 0,
'limit' => 20,
'joins' => array(
array(
'table' => 'tbl_artists_songs',
'alias' => 'ArtistsSong',
'conditions'=> array('Song.id = ArtistsSong.song_id')
),array(
'table' => 'tbl_artists',
'alias' => 'Artist',
'conditions'=> array('Artist.id = ArtistsSong.artist_id')
),array(
'table' => 'tbl_song_views',
'alias' => 'SongViews',
'type' => 'left',
'conditions'=> array('SongViews.song_id = ArtistsSong.song_id')
),
),
'order' => array('Artist.name'=>'asc')

);

最佳答案

这是 CakePHP 中的一个错误。

但是,有一个技巧可以做到这一点。

您应该在主模型中添加一个虚拟字段。

假设你的主要模型是 Song,你应该在调用 paginate 之前添加它:

$this->Song->virtualFields = array(
'artist_name' => 'Artist.name'
);

现在,您可以按 artist_name 排序.

关于带有连接表字段排序的 Cakephp 分页不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16986178/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com