Cakephp:按日期搜索,没有范围

时间:2013-05-21 13:05:25

标签: cakephp search cakephp-2.0

我是cakephp的新手。 如何在cakephp中按日期搜索,没有范围。 使用日期选择器和搜索选择日期。 在我的索引部分中创建了记录。我有一个日期选择器,搜索按钮位于index.ctp的顶部。 在搜索中我应该写什么

创建部件已完成。在该创建中,如果我选择日期和视图意味着应显示特定日期的详细信息。

这是我的编码

 function index()
 {

 $user = $this->Create->find('all');
 $this->set('create', $user);

  }
      function Search()

       { 

       ???


    $user = $this->Create->find('all',array('conditions'=>array('journeydate'=>'journeydate')));
    $this->set('create', $user);

}

  index.ctp


    <!-- link to add new users page -->

     <script>
      $(function() {
   $(".datepicker").datepicker({ dateFormat: "yy-mm-dd" });
  });
 </script>
  <?php
   foreach($create as $user ){}
  ?>
   <?php echo $this->form->create("Create",array('action' => 'search',',$user['Create']['id'])); 
     echo $this->form->input('date', 
    array(
       'class'=>'datepicker',
       'type'=>'text'
    ));
  echo $this->form->end("Search"); 
 ?> 

 <table style='padding:5px;'>
 <!-- table heading -->
 <tr style='background-color:#fff;'>
    <th>Id</th>
    <th>Name</th>
    <th>Age</th>
    <th>Gender</th>
    <th>Phone no</th>
    <th>Bus Name</th>
    <th>Ticket no</th>
    <th>Seat No</th>
     <th>From</th>
    <th>To</th>
    <th>Journey Date</th>
    <th>Booking Date</th>
    <th>Amount</th>

    </tr>

 <?php
   foreach($create as $user ){

    echo "<tr>";
        echo "<td>{$user['Create']['id']}</td>";
        echo "<td>{$user['Create']['name']}</td>";
        echo "<td>{$user['Create']['age']}</td>";
        echo "<td>{$user['Create']['gender']}</td>";
        echo "<td>{$user['Create']['phoneno']}</td>";
        echo "<td>{$user['Create']['busname']}</td>";
        echo "<td>{$user['Create']['ticketno']}</td>";
        echo "<td>{$user['Create']['seatno']}</td>";
        echo "<td>{$user['Create']['from']}</td>";
        echo "<td>{$user['Create']['to']}</td>";
        echo "<td>{$user['Create']['journeydate']}</td>";
        echo "<td>{$user['Create']['bookingdate']}</td>";
        echo "<td>{$user['Create']['amount']}</td>";

    echo "</tr>";
     }
     ?>

    <tr><td>
     <INPUT TYPE="BUTTON" VALUE="Back" ONCLICK="window.location.href='/newcake/creates/create'"></td></tr>
  </table>

1 个答案:

答案 0 :(得分:1)

使用FormHelper就可以使用POST方法创建一个Form。 我不知道你为什么要用id来支持它。此外,您似乎希望返回的用户应该在所选日期开始他们的旅程...在这种情况下,$ user ['Create'] ['id']没有任何意义。

将其更改为:

<?php echo $this->form->create("Create",array('action' => 'search')); ?>

在您的控制器中,您需要找到在所选日期开始旅程的所有用户: 由于FormHelper默认使用POST作为提交方法,因此您可以在以下位置找到表单数据: $这 - &GT;请求 - &GT;数据[ '为MyModel'] [ '标题'];

如果您不确定,可以随时输出提交的数据

pr($this->request->data);

您的搜索功能应如下所示:

public function Search(){ 

    $date = $this->request->data['Create']['date'];
    $user = $this->Create->find('all', array(
        'conditions' => array(
            'journeydate'=> $date,
        ),
    ));
    $this->set('create', $user);
}

您还应该更加谨慎地命名模型,因为在这种情况下,“创建”似乎并不是非常合适。 为了充分利用CakePHP,您应该遵守惯例。 http://book.cakephp.org/2.0/en/getting-started/cakephp-conventions.html