用CakePHP在索引处显示结果的搜索函数

用CakePHP在索引处显示结果的搜索函数,cakephp,cakephp-2.0,Cakephp,Cakephp 2.0,如何在“索引”视图中显示搜索功能的查询结果?显然,从默认蛋糕底部区域显示的内容来看,搜索工作正常。 从cTrader.movies中选择Movie.Movie\u id、Movie.title、Movie.date、Movie.description作为Movie WHERE Movie.date将表单更改为以下内容 <h1>Movies</h1> <?php echo $this->Form->create('Movie', array('type'

如何在“索引”视图中显示搜索功能的查询结果?显然,从默认蛋糕底部区域显示的内容来看,搜索工作正常。
从cTrader.movies中选择Movie.Movie\u id、Movie.title、Movie.date、Movie.description作为Movie WHERE Movie.date将表单更改为以下内容

<h1>Movies</h1>
<?php echo $this->Form->create('Movie', array('type' => 'get', 'action' => 'index'));?>
<?php echo $this->Form->input('date', array(
    'type'  => 'date',
    'label' => 'Date',
    'empty' => false,
    'dateFormat' => 'DMY',
    'minYear'=>'1990',
    'maxYear'=>date('Y'),
     ));  ?>

 <?php echo $this->Form->end(__('Submit')); ?> 
<table>
    <tr>
        <th>Title</th>
        <th>Year</th>
        <th>Description</th>
   </tr>
<?php foreach ($movies as $movie): ?>
    <tr>
        <td><?php echo $movie['Movie']['title'];?></td>
        <td><?php echo $movie['Movie']['date'];?></td>
        <td><?php echo $movie['Movie']['description'];?></td>
    </tr>
<?php endforeach; ?>
<?php unset($movie); ?>
</table>
<ul>
   <li><?php echo $this->Html->link(__('Insert a new movie'), array('controller' => 'movies', 'action' => 'add')); ?> </li>
</ul>
和你的控制器到下面

<?php
   class MoviesController extends AppController {

  public $helpers = array('Html', 'Form');

  public function index() {
     if(isset($this->request->query['date']){
             $result = $this->request->query['date']['year'] . $this->request->query['date']['month'] .     $this->request->query['date']['day'];
              $searchdate = array(
             'Movie.date <=' => $result,
          );
         $this->set('movies', $this->Movie->find('all', array('conditions' => $searchdate )));
         $this->render = 'search';
     }
     else{
         $this->set('movies', $this->Movie->find('all'));
     }
  }

?>

我不会重新发明轮子,而只是简单地使用它-它确实可以做到这一点,但要以干净干燥的方式。安德鲁,你能探索你面临的确切问题或你在哪里出错吗?谢谢你的回答@实际上,功能反应良好,并相应地进行处理。但是,我的问题发生在我第一次搜索之后。例如,我根据日期搜索我的第一部电影并显示,但当我再次搜索时,它会显示我的所有记录,我想这是因为需要清除某些内容。那会是什么?谢谢
<h1>Movies</h1>
<?php echo $this->Form->create('Movie', array('type' => 'get', 'action' => 'index'));?>
<?php echo $this->Form->input('date', array(
    'type'  => 'date',
    'label' => 'Date',
    'empty' => false,
    'dateFormat' => 'DMY',
    'minYear'=>'1990',
    'maxYear'=>date('Y'),
     ));  ?>

 <?php echo $this->Form->end(__('Submit')); ?> 
<table>
    <tr>
        <th>Title</th>
        <th>Year</th>
        <th>Description</th>
   </tr>
<?php foreach ($movies as $movie): ?>
    <tr>
        <td><?php echo $movie['Movie']['title'];?></td>
        <td><?php echo $movie['Movie']['date'];?></td>
        <td><?php echo $movie['Movie']['description'];?></td>
    </tr>
<?php endforeach; ?>
<?php unset($movie); ?>
</table>
<ul>
   <li><?php echo $this->Html->link(__('Insert a new movie'), array('controller' => 'movies', 'action' => 'add')); ?> </li>
</ul>
<?php
   class MoviesController extends AppController {

  public $helpers = array('Html', 'Form');

  public function index() {
     if(isset($this->request->query['date']){
             $result = $this->request->query['date']['year'] . $this->request->query['date']['month'] .     $this->request->query['date']['day'];
              $searchdate = array(
             'Movie.date <=' => $result,
          );
         $this->set('movies', $this->Movie->find('all', array('conditions' => $searchdate )));
         $this->render = 'search';
     }
     else{
         $this->set('movies', $this->Movie->find('all'));
     }
  }