我有一个有很多产品的页面,我只想显示与用户和区域所有的区域相同的产品,所以如果我有一个用户--哪个区域是日本--用户只需要看到所有区域和日本的产品。
我怎样才能用这种方式展示产品呢?
我不知道我是否要在控制器上的分页上做。
当我搜索搜索函数时,我做了一些可以显示相同区域的搜索,但在索引函数上却做不到。
编辑
我找到了如何用查询设置url来显示我想要的内容,但是现在分页不起作用了,它在一个页面上显示了所有的结果,这是我的索引函数:
public function index()
{
$this->paginate = [
'contain' => ['Languages', 'Categories', 'Users'],
'limit' => 2
];
$this->set('multimedia', $this->paginate($this->Multimedia));
$this->set('_serialize', ['multimedia']);
$multimedia = array();
if (!empty($this->request->query)) {
$country_id = $this->request->query['country_id'];
$conditions = array(
'AND' => array(
'OR' => array(
'Multimedia.country_id' => $country_id,
),
'AND' => array(
)
)
);
if ($country_id) $conditions['conditions']['or']['Multimedia.country_id'] = $country_id ;
$multimedia = $this->Multimedia->find('all', $conditions);
}
$this->set('multimedia', $multimedia);
$languages = $this->Multimedia->Languages->find('list', ['limit' => 200]);
$categories = $this->Multimedia->Categories->find('list', ['limit' => 200]);
$users = $this->Multimedia->Users->find('list', ['limit' => 200]);
$multimedia_types = $this->Multimedia->Multimedia_types->find('list', ['limit' => 200]);
$this->set(compact('multimedia', 'languages', 'categories', 'users', 'multimedia_types'));
$this->set('_serialize', ['multimedia']);
}发布于 2015-09-22 23:46:38
您正在使用$multimedia = $this->Multimedia->find('all', $conditions),所以您当然会得到所有的结果。要使用得到分页结果,请将该行替换为
$this->paginate['conditions'] = $conditions;
$multimedia = $this->paginate($this->Multimedia);https://stackoverflow.com/questions/32727510
复制相似问题