Axi*_*iol 5 pagination cakephp
我在CakePHP项目上设置了一个简单的搜索引擎,看起来像这样:
<?php
echo $this->Form->create("Post", array(
"action" => "search",
"id" => "searchForm"
));
echo $this->Form->input("keyword", array(
"label" => "",
"type" => "search",
"placeholder" => "Recherche..."
));
echo $this->Form->end();
?>
Run Code Online (Sandbox Code Playgroud)
这是控制器:
function search() {
$keyword = $this->request->data;
$keyword = $keyword["Post"]["keyword"];
$cond = array("OR" => array(
"Post.title LIKE '%$keyword%'",
"Post.description LIKE '%$keyword%'"
));
$posts = $this->Post->find("all", array("conditions" => $cond));
$this->set(compact("posts", "keyword"));
}
Run Code Online (Sandbox Code Playgroud)
而且效果很好.唯一的问题是我想要对结果进行分页.我只是添加:
$posts = $this->paginate();
Run Code Online (Sandbox Code Playgroud)
这就是问题所在.当我添加它时,CakePHP会给我所有帖子,而不仅仅是那些与关键字匹配的帖子.
所以,如果你有一个解决方案,那就太好了:)
Eoi*_*phy 13
根据CakePHP的书,你应该可以做到
$this->paginate('Post', array(
'OR' => array(
'Post.title LIKE' => "%$keyword%",
'Post.description LIKE' => "%$keyword%"
)
));
Run Code Online (Sandbox Code Playgroud)
或者你可以这样做(来自cakephp网站).
public function list_recipes() {
$this->paginate = array(
'conditions' => array('Recipe.title LIKE' => 'a%'),
'limit' => 10
);
$data = $this->paginate('Recipe');
$this->set(compact('data'));
);
Run Code Online (Sandbox Code Playgroud)
资料来源:http: //book.cakephp.org/2.0/en/core-libraries/components/pagination.html
| 归档时间: |
|
| 查看次数: |
14173 次 |
| 最近记录: |