【发布时间】:2014-02-23 10:27:08
【问题描述】:
正如标题所说,我需要使用输入表单从我的数据库中搜索数据并将查询返回到同一页面。
我尝试过 Google 和此处提供的许多不同类型的解决方案。到目前为止,他们都没有和我一起工作过。而且我对 CakePHP 很陌生,所以很明显我错过了一些东西..
我的数据的表名是“posts”。
所以我想要这个搜索的视图是(search.ctp),我有这样的表格:
<?php
echo $this->Form->create('Search');
echo $this->Form->input('search', array('label' => 'Search with ID'));
echo $this->Form->end('Search');
?>
根据我的发现,我很困惑是否应该使用我的 PostsController.php 作为搜索功能,或者为此将新的 Controller 设置为 SearchController.php,模型也是如此。
此时我正在使用 SearchController.php 进行尝试,代码如下:
class SearchController extends AppController {
public function search(){
$keyword=$this->params->query['keyword'];
$cond=array('OR'=>array("Post.id LIKE '%$keyword%'","Post.title LIKE %$keyword%'") );
$list = $this->Post->find('all',array('conditions')=>$cond);
}
}
我试图在页面 search.ctp 代码上显示我的查询结果的部分如下:
<?php
foreach($list as $post): ?>
<tr>
<td> <?php echo $post ["Search"]["id"]; ?> </td>
<td>
<?php echo $this->Html->link($post["Search"]["title"], array("controller" => "posts", "action" => "search", $post["Search"]["id"])); ?>
</td>
<td><?php echo $post["Search"]["created"]; ?></td>
</tr>
<?php endforeach; ?>
<?php unset ($post); ?>
我敢打赌,代码有点迟钝,我为此尝试了很多不同的解决方案,所以现在代码完全搞砸了,我怀疑..
无论如何,如果有人愿意帮助有需要的人,请提前感谢您!
【问题讨论】: