ORM Kohana Pagination VS找到的总记录

时间:2012-10-27 19:42:39

标签: php kohana

我在使用这个脚本时遇到了一些问题...工作正常,但不适用于在查询中找到的记录总数。

我的ORM上有这个函数叫做“mix”。共有3个表:mixes,generos和mixes_generos。

我可以在“混音”表格或“generos”表格上搜索任何人。

public function search($query, $itemsperpage, $page)
{
    if (empty($page))
        $page = 1;

    $offset = ($page - 1) * $itemsperpage;

    $orm = $this->join('mixes_generos', 'LEFT')->on('mix.id', '=', 'mixes_generos.mix_id')
                ->join('generos', 'LEFT')->on('generos.id', '=', 'mixes_generos.genero_id')
                ->where_open()
                    ->or_where('mix.nombre', 'LIKE', '%'.$query.'%')
                    ->or_where('mix.descripcion', 'LIKE', '%'.$query.'%')
                    ->or_where('generos.nombre', 'LIKE', '%'.$query.'%')
                ->where_close()
                ->and_where('mix.estatus', '=', 'active')
                ->order_by('mix.fecha_produccion', 'DESC')
                ->order_by('mix.track', 'DESC');

    $this->_search_total = $orm->reset(FALSE)->count_all();

    $orm = $orm->limit($itemsperpage)->offset($offset);

    return $orm;
}

public function search_total()
{
    return $this->_search_total;
}

然后,在我的控制器中我有这个:

$data = ORM::factory('mix')->search('pop music', 10, 1);

如果我想回应总数,我会这样做:

echo $data->search_total();

在我的视图中我打印信息:

foreach($data->find_all() as $mix)
    echo $mix->nombre;

http://s10.postimage.org/cvnr28nop/records.jpg

在此链接中,您将看到结果,仔细查看“records_founds”列与其创建的“记录”数量,3 vs 1 ??。

这是主要问题...因为当我打印混音的数据时显示3而不是1.我还添加了group_by('mix.id')而没有:(

您怎么看?

谢谢

0 个答案:

没有答案