使用join的cakephp排序问题

时间:2011-01-29 19:36:11

标签: cakephp

为什么没有工作按“作者”排序?不抛出任何错误,只是未分类

   function index()
        {
            $this->paginate = array(
                    'limit' => 5,
                    'order' => array(
                        'Post.id' => 'asc',
                    ),
                    'fields' => array('Post.id', 'Post.title', 'User.name AS aut_name'),
                    'joins' => array(
                        array(
                            'table' =>'users',
                            'alias' =>'User',
                            'type' =>'LEFT',
                            'conditions' => array(
                                'Post.author = User.id'
                            )
                        )
                    )
            );  
            $posts = $this->paginate();
            $this->set('posts', $posts);
        }

<tr>
        <th><?php echo $paginator->sort('ID', 'id'); ?></th>
        <th><?php echo $paginator->sort('Author', 'User.name'); ?></th>
        <th><?php echo $paginator->sort('Tilte', 'title'); ?></th>
        <th>Actions</th>
    </tr>

2 个答案:

答案 0 :(得分:1)

代码建议将User.name字段作为“aut_name”返回,也可以将sort参数设置为使用该字段名称?

<th><?php echo $paginator->sort('Author', 'aut_name'); ?></th>

答案 1 :(得分:1)

也许你应该这样做 在控制器中:

'fields' => array('Post.id', 'Post.title', 'User.name')

在视图中:

 <th><?php echo $paginator->sort('Author', 'User.name'); ?></th>